我有一个100 GB的表,正试图加载到Google bigquery中。它作为一个100GB的avro文件存储在GCS上。
当前我的bq load
工作失败,并显示了无用的错误消息:
UDF worker timed out during execution.; Unexpected abort triggered for
worker avro-worker-156907: request_timeout
我正在考虑尝试其他格式。我了解bigquery支持多种格式(AVRO,JSON,CSV,Parquet等),并且原则上可以以任何一种格式加载大型数据集。
但是,我想知道是否有人在加载到bigquery中时会遇到哪种格式最可靠/最不容易在实践中出现怪癖?
答案 0 :(得分:1)
可能我将按照以下步骤解决:
将文件复制到GCS的命令:
gsutil -m cp <local folder>/* gs:<bucket name>
gsutil -m选项以执行并行 (多线程/多处理)
此后,我将使用 Cloud Dataflow默认模板从 GCS 移至 BQ 。 link。 (请记住,使用默认模板不需要代码)
以下是调用数据流link的示例:
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