Срок действия дневного раздела BigQuery, возвращающий 2 дня разделенных данных - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть таблица с 1-дневным сроком действия раздела:

[tim@Timothys-MBP] data-exporter $ bq ls --format=pretty data_export
+-----------------------+-------+--------+------------------------------+
|        tableId        | Type  | Labels |      Time Partitioning       |
+-----------------------+-------+--------+------------------------------+
| test .                | TABLE |        | DAY (expirationMs: 86400000) |
+-----------------------+-------+--------+------------------------------+

У меня есть задание cron, которое обновляет эту таблицу каждое утро в 3 часа утра по UTC.Когда я запрашиваю эту таблицу, я ожидаю только данных за последние дни, но запрашиваются разделы как сегодня, так и вчера.

[tim@Timothys-MBP] data-exporter $ bq --location EU  query --use_legacy_sql=false 'SELECT COUNT(Id) FROM `proj.data_export.test`'
Waiting on bqjob_*** ... (0s) Current status: DONE
+------+
| f0_  |
+------+
| 2885 |
+------+
[tim@Timothys-MBP] data-exporter $ bq --location EU  query --use_legacy_sql=false 'SELECT COUNT(Id) FROM `proj.data_export.test` WHERE _PARTITIONTIME = TIMESTAMP("2018-09-10")'
Waiting on bqjob_*** ... (2s) Current status: DONE
+------+
| f0_  |
+------+
| 1447 |
+------+
[tim@Timothys-MBP] data-exporter $ bq --location EU  query --use_legacy_sql=false 'SELECT COUNT(Id) FROM `proj.data_export.test` WHERE _PARTITIONTIME = TIMESTAMP("2018-09-09")'
Waiting on bqjob_*** ... (0s) Current status: DONE
+------+
| f0_  |
+------+
| 1438 |
+------+
[tim@Timothys-MBP] data-exporter $ bq --location EU  query --use_legacy_sql=false 'SELECT COUNT(Id) FROM `proj.data_export.test` WHERE _PARTITIONTIME = TIMESTAMP("2018-09-08")'
Waiting on bqjob_*** ... (0s) Current status: DONE
+------+
| f0_  |
+------+
| 1434 |
+------+

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

1 Ответ

0 голосов
/ 08 ноября 2018

Мне удалось выполнить запрос к определенной таблице разделов, например:

bq query --use_legacy_sql=false 'SELECT  COUNT(id) FROM `dataset_name.table_name` WHERE _PARTITIONTIME = TIMESTAMP("2017-12-11 00:00:00 UTC")'

Обратите внимание: 00: 00: 00 UTC сразу после даты.

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