Сброс данных из Apache Alooma в Bigquery - PullRequest
0 голосов
/ 07 мая 2019

У нас есть конвейер для получения данных из Apache Alooma в 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

Вывод:

1 ноль 21492
2 2019-05-07 6633

около 3 минут повторно запросить запрос и нашел вывод, как это

1 null 26355
2 2019-05-07 6633

Примечание. Извлеченная запись с уникальным ключом из этого раздела и выполнение запроса 2.

через 10-15 минут снова перезапускает запрос со следующими результатами:

1 2019-05-07 28125
2 null 16660

Для поддержки наблюдения выполнялся следующий запрос

Запрос 2:

select * from `<table>`  where unique_col >= '5cd0d13d0ae0' and
DATE(_PARTITIONTIME) = '2019-05-07'

- 0 записей

select * from `<table>`  where unique_col  >= '5cd0d13d0ae0' and
_PARTITIONTIME is null

- вывод появился

запись найдена в _PARTITIONTIMСтолбец E через 4 минуты

select * from `<table>`  where unique_col  >= '5cd0d13d0ae0' and
DATE(_PARTITIONTIME) = '2019-05-07'

- вывод появился

Согласно приведенному выше наблюдению, кажется, что данные сначала попадают во временный нулевой раздел и из нулевого в действительный столбец раздела.Это понимание правильно?

1 Ответ

2 голосов
/ 07 мая 2019

кажется, что данные сначала попадают во временный пустой раздел и из нулевого в настоящий столбец раздела.Это понимание правильно?

Да, это так.Как видно из документации BigQuery при потоковой передаче данных в таблицу разделов, данные сначала сохраняются в потоковом буфере со значением NULL в поле раздела.Как только BigQuery закончит вставку записи, поле _PARTITIONTIME будет содержать соответствующее значение даты

Это соответствующий текст из документации BigQuery

Вновь поступающие данные будут временносвязан с разделом UNPARTITIONED, находясь в буфере потоковой передачи.Таким образом, запрос может исключить данные в потоковом буфере из запроса, отфильтровав значения NULL из раздела UNPARTITIONED с помощью одного из псевдоколонок

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...