ogg设置目标分区与主分区不一致

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ogg设置目标分区与主分区不一致相关的知识,希望对你有一定的参考价值。

参考技术A 建议启动数据库。
源端来个insert,目标端也是执行了相同的insert,所以源端和目标端的数据才是一致的。比如说:同步A表,源端还有与A表相同结构的B表,而目标端没有B表,那么将B表数据插入A表(insertintoAselect*fromB;),按照我之前的说法,ogg同步进程就应该abend了。一,检查服务是否启动,
二,如果已经启动,说明你的数据库没有启动,需要使用管理员身份登陆后,使用startup启动,操作为sys/assysdba进去后,说已连接什么空闲内存,然后使用startup启动,如果不能启动,先可以使用shutdownimmediate再启动,再不行,就只有查错误,在不链接数据库情况下,下设置环境,将相应的错误修复后在启动。

对分区表使用 FIRST 或 LAST 会返回不一致的值

【中文标题】对分区表使用 FIRST 或 LAST 会返回不一致的值【英文标题】:Using FIRST or LAST over partitioned tables returns inconsistent values 【发布时间】:2016-07-24 05:20:16 【问题描述】:

在跨多个表运行的查询中使用 LAST 或 FIRST 时,返回的结果不一致。再次执行相同的查询每次都会返回不同的结果。

返回的值与查询中一个表的正确 LAST 和 FIRST 值匹配。但是,每种情况下使用的表格似乎都是随机选择的。

例如下面的查询:

SELECT 
  FIRST(timestamp) as first_ts, 
FROM TABLE_DATE_RANGE([some_table]_, timestamp('2016-07-21'), timestamp('2016-07-22'))

将返回:

first_ts
2016-07-22 07:35:30 UTC

第一次运行,并且:

first_ts
2016-07-21 23:16:26 UTC

下一次运行。等等。

预期结果是2016-07-21 23:16:26。但是,值2016-07-22 07:35:30 UTC 是表[some_table]_20160722 的第一个时间戳,所以我认为发生的情况是BigQuery 不允许您在跨表查询时对表进行排序。结果,FIRST 和 LAST 变得不可靠,因为不知道表的顺序。请注意,MAX 和 MIN 确实可以很好地跨表。

不仅在使用旧版 SQL 时如此,在使用新 SQL 以及函数 FIRST_VALUE 和 LAST_VALUE 时也是如此(因为不再支持 FIRST 和 LAST。可能相关?)请参见下面使用新 SQL 的示例。

SELECT
  FIRST_VALUE(timestamp) OVER (ORDER BY event_sequence ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) first_ts,
FROM `some_table_*` 
WHERE _TABLE_SUFFIX BETWEEN '20160721' AND '20160722'

此外(这可能被视为一个单独的问题)在查询 单个表 时会观察到类似的行为,其中 数据已多次附加到该表。 FIRST 和 LAST 的结果不一致。加载的每个数据子集都表现为一个分区。

在我看来,这就像一个错误,除非有人知道如何做到这一点。 Google Bigquery 团队,我们喜欢您的产品。但是你能解决这个问题吗?我们不能以可靠的方式使用 FIRST 和 LAST 聚合,这对我们来说很重要。谢谢!

【问题讨论】:

【参考方案1】:

我们不能以可靠的方式使用 FIRST 和 LAST 聚合,那就是 对我们来说很重要

我认为这里没有错误!

来自文档:

FIRST(expr) 返回函数范围内的第一个连续值。

表格本身不被视为有序序列。 BigQuery 不保证输出行的顺序,除非您提供一些提示 - 例如 ORDER BY

所以在你的例子中 - 你应该在下面使用。这将以可靠的方式为您提供预期的结果!

SELECT 
  FIRST(timestamp) AS first_ts
FROM (
  SELECT *
  FROM TABLE_DATE_RANGE([some_table]_, TIMESTAMP('2016-07-21'), TIMESTAMP('2016-07-22'))
  ORDER BY timestamp
)

注意:MAX 和 MIN 当然可以工作,因为它们不关心顺序

【讨论】:

对,有道理。谢谢。很高兴知道table by itself is not considered as an ordered sequence。这就是我们目前正在使用的解决方案,但是对于我们必须查询的数据量,我们得到一个resources exceeded 总有解决办法!提供更多详细信息,我们可能会提供帮助:o)我建议您为此发布新问题 太棒了。会做。谢谢!

以上是关于ogg设置目标分区与主分区不一致的主要内容,如果未能解决你的问题,请参考以下文章

OGG-01163 Bad column表结构一致trail文件meta不一致处理

两个一样的硬盘(除了分区表不一样)一样的文件 占用空间为啥不一致?

分区实际大小和显示不一致

黑苹果在开启HiDIP后,苹果标和进度条大小不一致?

linux服务器系统日志如何通过命令压缩移到别的磁盘

为何df和du看到的空间占用大小不一致