Учитывая строковое значение и временную метку, как создать пользовательскую таблицу разделов на основе года в BigQuery? - PullRequest
1 голос
/ 01 марта 2020

У меня есть некоторые значения в неразделенной таблице 'A' , показанной ниже

{'column_1': 'string_1', 'timestamp': 2018 -01-01 00:00:00}
{'column_1': 'string_6', 'timestamp': 2021-01-01 00:00:00}
{'column_1': 'string_2', ' отметка времени ': 2018-01-01 00:00:00}
{' column_1 ':' string_4 ',' отметка времени ': 2020-01-01 00:00:00}
{' column_1 ':' string_3 ',' timestamp ': 2019-01-01 00:00:00}
{' column_1 ':' string_5 ',' timestamp ': 2021-01-01 00:00:00}

Как создать новую таблицу Таблица 'B' , которая разбивается на год, и новые значения автоматически вставляются в правильные year разделы после запуска команды вставки в BigQuery ?

Структура таблицы 'B'

string_1 | 2018-01-01 00:00:00 | 2018
строка_2 | 2018-01-01 00:00:00 | 2018
строка_3 | 2019-01-01 00:00:00 | 2019
строка_4 | 2020-01-01 00:00:00 | 2020
string_5 | 2021-01-01 00:00:00 | 2021
string_6 | 2021-01-01 00:00:00 | 2021

1 Ответ

1 голос
/ 02 марта 2020

Вы можете использовать технику, используемую BigQuery publi c таблица набора данных bigquery-public-data:crypto_bitcoin.blocks, которая является таблицей с разделами DAY и использует первый день месяца в качестве столбца раздела timestamp_month.

CREATE TEMP TABLE table_a (
   column_1 STRING,
   timestamp TIMESTAMP,
) as 
  select "string_1", TIMESTAMP "2018-01-01 00:00:00" UNION ALL
  select "string_2", TIMESTAMP "2019-01-01 00:00:00";

CREATE TEMP TABLE table_b (
   column_1 STRING,
   timestamp TIMESTAMP,
   timestamp_year DATE
) PARTITION BY timestamp_year;


INSERT INTO table_b
SELECT column_1, 
       timestamp, 
       DATE(EXTRACT(YEAR FROM DATE(timestamp)), 1, 1) timestamp_year
FROM table_a;

SELECT *
FROM table_b;

Вывод:

+----------+---------------------+----------------+
| column_1 |      timestamp      | timestamp_year |
+----------+---------------------+----------------+
| string_1 | 2018-01-01 00:00:00 |     2018-01-01 |
| string_2 | 2019-01-01 00:00:00 |     2019-01-01 |
+----------+---------------------+----------------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...