Переместить разделенные и неразделенные таблицы BigQuery из США в ЕС - PullRequest
0 голосов
/ 09 мая 2018

Мне нужно переместить наборы данных BigQuery со многими таблицами (как разделенными, так и не разделенными) из США в ЕС. Если исходная таблица не разделена, документированный способ bq extract передачи данных в GCS и bq load передачи в другом регионе работает нормально, пока что все хорошо.

Если, однако, исходная таблица разбита на разделы, то на этапе загрузки отображение между данными и разделом будет потеряно, и я получу все данные в одном разделе.

Есть ли хороший (автоматизированный) способ экспорта и импорта секционированных таблиц в BQ? Любые указатели будут с благодарностью!

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Другое решение состоит в том, чтобы использовать DML для загрузки данных вместо загрузки, https://cloud.google.com/bigquery/docs/using-dml-with-partitioned-tables. Поскольку у вас есть столбец метки времени в таблице для вывода раздела, вы можете использовать

INSERT INTO PROJECT_ID.DATASET.mytable (_PARTITIONTIME, field1, field2) AS SELECT timestamp_column, 1, “one” FROM PROJECT_ID.DATASET.federated_table

Вы можете определить постоянную федеративную таблицу или временную, https://cloud.google.com/bigquery/external-data-cloud-storage#permanent-tables. Вам придется платить за DML, хотя загрузка свободна.

0 голосов
/ 09 мая 2018

Есть несколько способов сделать это, но я бы лично использовал Cloud Dataflow, чтобы решить это. Вам придется заплатить немного больше за поток данных, но вы сэкономите много времени и сценариев в долгосрочной перспективе.

Высокий уровень:

  1. Раскрутите конвейер потока данных
  2. Считать многораздельную таблицу в США (возможно, добавив псевдоним _PARTITIONTIME, чтобы потом было легче)
  3. Запись результатов обратно в BigQuery с использованием того же раздела.

Это в основном то же, что говорилось о здесь .

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