Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从ApacheAlooma到Bigquery的数据转储_Apache_Google Bigquery - Fatal编程技术网

从ApacheAlooma到Bigquery的数据转储

从ApacheAlooma到Bigquery的数据转储,apache,google-bigquery,Apache,Google Bigquery,我们有一个从ApacheAlooma到Bigquery(基于_PARTITIONTIME的分区表)接收数据的管道集 到目前为止的观察结果是,数据并没有直接转储到_PARTITIONTIME列中,而是首先进入“null”分区,然后逐渐转储到_PARTITIONTIME列中 例如: 问题1: select DATE(_PARTITIONTIME) , count(1) from `<table>` where FORMAT_DATETIME( "%Y-%m-%d %T" , <c

我们有一个从ApacheAlooma到Bigquery(基于_PARTITIONTIME的分区表)接收数据的管道集

到目前为止的观察结果是,数据并没有直接转储到_PARTITIONTIME列中,而是首先进入“null”分区,然后逐渐转储到_PARTITIONTIME列中

例如:

问题1:

select DATE(_PARTITIONTIME) , count(1) from `<table>` where 
FORMAT_DATETIME( "%Y-%m-%d %T" , <col1>) >= "2019-05-07 00:02:00" and FORMAT_DATETIME( "%Y-%m-%d %T",<col1>)<= "2019-05-07 23:59:59" 
group by 1
选择日期(\u PARTITIONTIME),从``中计数(1)
格式化日期时间(“%Y-%m-%d%T”)>=“2019-05-07 00:02:00”和格式化日期时间(“%Y-%m-%d%T”)=“5cd0d13d0ae0”和
日期(_分割时间)='2019-05-07'
--0记录

从``where unique\u col>='5cd0d13d0ae0'中选择*并
_分区时间为空
--产出出现了

4分钟后在_PARTITIONTIME列中找到记录

select * from `<table>`  where unique_col  >= '5cd0d13d0ae0' and
DATE(_PARTITIONTIME) = '2019-05-07'
从``where unique\u col>='5cd0d13d0ae0'中选择*并
日期(_分割时间)='2019-05-07'
--产出出现了

根据上面的观察,数据似乎首先进入临时空分区,然后从空到实际分区列。这种理解正确吗

似乎数据首先进入临时空分区,然后从空分区列进入实际分区列。这种理解正确吗

是的。从BigQuery可以看出,将数据流式传输到分区表时,数据首先存储在一个流式缓冲区中,分区字段中的值为空。 一旦BigQuery完成插入记录,\ u PARTITIONTIME字段将保存相关的日期值

这是BigQuery文档中的相关文本

在流缓冲区中,新到达的数据将临时与未分区的分区关联。因此,查询可以通过使用一个伪列从未分区中过滤出空值,从而从查询中排除流缓冲区中的数据

似乎数据首先进入临时空分区,然后从空分区列进入实际分区列。这种理解正确吗

是的。从BigQuery可以看出,将数据流式传输到分区表时,数据首先存储在一个流式缓冲区中,分区字段中的值为空。 一旦BigQuery完成插入记录,\ u PARTITIONTIME字段将保存相关的日期值

这是BigQuery文档中的相关文本

在流缓冲区中,新到达的数据将临时与未分区的分区关联。因此,查询可以通过使用一个伪列从未分区中过滤出空值,从而从查询中排除流缓冲区中的数据


发生这种情况的原因是bigquery中的流缓冲区部分。可以在Bigquery表的详细信息部分看到。有没有办法减少流式缓冲区的估计大小/行数。我们能缩小规模吗?估计大小78.3MB估计行13223不幸的是,您不能,这完全是由BigQuery管理的。也请考虑投票,并不仅接受这个缓冲所面临的问题是在一天结束时,即5月6日23时00分-23秒59∶59数据继续收集到空分区,并且当时钟结构24:00时,新的分区被创建,并且以前的日期数据进入下一个日期分区,这是5月7日。有没有办法处理这种变形请打开一个新问题来描述这个新问题这种情况的发生是因为bigquery中的流缓冲区部分。可以在Bigquery表的详细信息部分看到。有没有办法减少流式缓冲区的估计大小/行数。我们能缩小规模吗?估计大小78.3MB估计行13223不幸的是,您不能,这完全是由BigQuery管理的。也请考虑投票,并不仅接受这个缓冲所面临的问题是在一天结束时,即5月6日23时00分-23秒59∶59数据继续收集到空分区,并且当时钟结构24:00时,新的分区被创建,并且以前的日期数据进入下一个日期分区,这是5月7日。有没有办法处理这样的问题?请提出一个新问题来描述这个新问题
select * from `<table>`  where unique_col  >= '5cd0d13d0ae0' and
_PARTITIONTIME is null
select * from `<table>`  where unique_col  >= '5cd0d13d0ae0' and
DATE(_PARTITIONTIME) = '2019-05-07'