该问题通常由于数据传输作业未能发现数据目标表中的任何新数据而引起,从而不会触发任何更改。为了解决这个问题,您可以尝试以下方法:
以下是一个例子,演示如何通过指定合适的前缀来修改配置,使检测到新的目标表。
from google.cloud import bigquery_datatransfer
client = bigquery_datatransfer.DataTransferServiceClient()
project_id = "your-project-id"
sink_dataset_id = "your-dataset-id"
destination_table_name_template = "my_new_table"
display_name = "My Data Transfer Config"
parent = client.common_project_path(project_id)
response = client.create_transfer_config(
parent,
transfer_config=dict(
display_name=display_name,
data_source_id="google_cloud_storage",
params={
"destination_table_name_template": f"{destination_table_name_template}_{{
run_time.strftime('%Y%m%d_%H%M%S')}}",
"file_pattern": "gs://my_bucket/path/my_file_PREFIX*",
"format": "CSV",
"compression": "NONE",
},
schedule="every 24 hours",
destination_dataset_id=sink_dataset_id,
)
)
# The following line prints the TransferConfig object
print(response)
请注意,在此示例中,我们将目标表后缀_run_time
添加到表名中,以允许检测到新的目标表。 您需要手动在BigQuery中