самый надежный формат для больших заданий с большой нагрузкой - PullRequest
3 голосов
/ 01 апреля 2019

У меня есть таблица на 100 ГБ, которую я пытаюсь загрузить в Google BigQuery.Он хранится в GCS как отдельный файл размером 100 ГБ.

В настоящее время моя работа bq load не выполняется с бесполезным сообщением об ошибке:

UDF worker timed out during execution.; Unexpected abort triggered for
worker avro-worker-156907: request_timeout

Я пытаюсь использовать другой формат,Я понимаю, что bigquery поддерживает несколько форматов (AVRO, JSON, CSV, Parquet и т. Д.) И что в принципе можно загружать большие наборы данных в любом из этих форматов.

Однако мне было интересно, может ли кто-нибудь здесь иметь опытс каким из этих форматов наиболее надежны / наименее подвержены извращениям на практике при загрузке в bigquery?

1 Ответ

1 голос
/ 04 апреля 2019

Возможно, я решу следующие шаги:

  1. Создание тонны маленьких файлов в csv формате
  2. Отправка файлов на GCS .

Команда для копирования файлов в GCS:

gsutil -m cp <local folder>/* gs:<bucket name>

опция gsutil -m для параллельного выполнения (Многопоточной / мульти-обработка)

После этого я перейду с GCS на BQ , используя Шаблон облачного потока данных по умолчанию . ссылка . (Помните, что при использовании шаблона по умолчанию вам не нужен код)

Вот пример для вызова потока данных ссылка :

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_Text_to_BigQuery \
    --parameters \
javascriptTextTransformFunctionName=YOUR_JAVASCRIPT_FUNCTION,\
JSONPath=PATH_TO_BIGQUERY_SCHEMA_JSON,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
inputFilePattern=PATH_TO_YOUR_TEXT_DATA,\
outputTable=BIGQUERY_TABLE,\
bigQueryLoadingTemporaryDirectory=PATH_TO_TEMP_DIR_ON_GCS
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...