在BigQuery中,可以使用以下代码示例将数据导出为分层文件夹:YYYY/MM/DD:
from google.cloud import bigquery
from google.cloud import storage
from datetime import datetime
# 设置BigQuery和Storage客户端
bq_client = bigquery.Client()
gcs_client = storage.Client()
# 指定BigQuery数据集和表名
dataset_id = 'your-dataset-id'
table_id = 'your-table-id'
# 获取当前日期
current_date = datetime.now().strftime("%Y/%m/%d")
# 指定导出的目标GCS存储桶和文件夹路径
bucket_name = 'your-bucket-name'
folder_path = f'your-folder-path/{current_date}'
# 构建导出配置
destination_uri = f'gs://{bucket_name}/{folder_path}/export*.csv' # 导出的文件名以export开头,以.csv结尾
table_ref = bigquery.DatasetReference(dataset_id, table_id)
job_config = bigquery.ExtractJobConfig()
job_config.destination_format = 'CSV'
job_config.field_delimiter = ','
# 执行导出任务
extract_job = bq_client.extract_table(
table_ref,
destination_uri,
job_config=job_config
)
extract_job.result() # 等待导出任务完成
# 检查导出的文件
bucket = gcs_client.get_bucket(bucket_name)
blobs = bucket.list_blobs(prefix=folder_path)
for blob in blobs:
print(blob.name)
请注意以下几点:
your-dataset-id
和your-table-id
需要替换为实际的数据集和表名。your-bucket-name
和your-folder-path
需要替换为实际的GCS存储桶和文件夹路径。extract_job.result()
来等待导出任务完成。这样,数据将以分层文件夹的形式导出到指定的GCS存储桶中,每天一个文件夹。