重命名 GCP 数据流中的 table 名称
Renaming table name in GCP dataflow
我是 GCP.I 的新手,正在构建一个数据流作业,使用 google provided templates 将数据从 Datastream 移动到 Bigquery。
我收到以下错误 (java.lang.IllegalArgumentException: Table reference is not in [project_id]:[dataset_id].[table_id] format)
我认为这是由 table 引起的,它的 table 名称中包含 space。
如何在此数据传输阶段重命名 table 名称?
谢谢
如果您使用的是提供的模板,您可以在文档中查看配置参数。似乎您尝试使用的 outputStagingTableNameTemplate 参数的格式配置不正确。你能检查一下格式是否正确吗?
gcloud beta dataflow flex-template run JOB_NAME \
--project=PROJECT_ID \
--region=REGION_NAME \
--enable-streaming-engine \
--template-file-gcs-location=gs://dataflow-templates/VERSION/flex/Cloud_Datastream_to_BigQuery \
--parameters \
inputFilePattern=GCS_FILE_PATH,\
gcsPubSubSubscription=GCS_SUBSCRIPTION_NAME,\
outputStagingDatasetTemplate=BIGQUERY_DATASET,\
outputDatasetTemplate=BIGQUERY_DATASET,\
outputStagingTableNameTemplate=[project_id]:[dataset_id].[table_id],\
outputTableNameTemplate=BIGQUERY_TABLE_log
例如,如果目标 table 是来自 public google datasets 的 table(这是不可能的,这只是一个示例),则 outputStagingTableNameTemplate 参数应如下所示:
outputStagingTableNameTemplate=bigquery-public-data:covid19_italy.data_by_province
其中:
- bigquery-public-数据是 project_id
- covid19_italy 是 dataset_id
- data_by_province 是 table_id
目前 Beam 使用不支持空格的 this 正则表达式验证 table 名称。所以这可能是一个错误。
你能提交一个 Jira here.
在使用 BigQueryIO 阅读时,您可以通过使用查询而不是 table 引用来解决这个问题。
我是 GCP.I 的新手,正在构建一个数据流作业,使用 google provided templates 将数据从 Datastream 移动到 Bigquery。
我收到以下错误 (java.lang.IllegalArgumentException: Table reference is not in [project_id]:[dataset_id].[table_id] format)
我认为这是由 table 引起的,它的 table 名称中包含 space。
如何在此数据传输阶段重命名 table 名称?
谢谢
如果您使用的是提供的模板,您可以在文档中查看配置参数。似乎您尝试使用的 outputStagingTableNameTemplate 参数的格式配置不正确。你能检查一下格式是否正确吗?
gcloud beta dataflow flex-template run JOB_NAME \
--project=PROJECT_ID \
--region=REGION_NAME \
--enable-streaming-engine \
--template-file-gcs-location=gs://dataflow-templates/VERSION/flex/Cloud_Datastream_to_BigQuery \
--parameters \
inputFilePattern=GCS_FILE_PATH,\
gcsPubSubSubscription=GCS_SUBSCRIPTION_NAME,\
outputStagingDatasetTemplate=BIGQUERY_DATASET,\
outputDatasetTemplate=BIGQUERY_DATASET,\
outputStagingTableNameTemplate=[project_id]:[dataset_id].[table_id],\
outputTableNameTemplate=BIGQUERY_TABLE_log
例如,如果目标 table 是来自 public google datasets 的 table(这是不可能的,这只是一个示例),则 outputStagingTableNameTemplate 参数应如下所示:
outputStagingTableNameTemplate=bigquery-public-data:covid19_italy.data_by_province
其中:
- bigquery-public-数据是 project_id
- covid19_italy 是 dataset_id
- data_by_province 是 table_id
目前 Beam 使用不支持空格的 this 正则表达式验证 table 名称。所以这可能是一个错误。 你能提交一个 Jira here.
在使用 BigQueryIO 阅读时,您可以通过使用查询而不是 table 引用来解决这个问题。