>source

월별로 파티션을 나눈 대상 테이블에 Bigquery 데이터 전송 작업을 설정했습니다. 테이블은 다음 명령으로 생성되었습니다.

bq mk --table \                                                                              
  --schema schema.json \
  --time_partitioning_field createdAt \
  --time_partitioning_type MONTH \
  myproject:mydataset.MyTable

데이터 전송 작업은 다음과 같이 Python BQDTS 클라이언트로 생성되었습니다.

parent = f"projects/myproject/locations/{location}"
baseparams = {
    "file_format": "CSV",
    "ignore_unknown_values": True,
    "field_delimiter": ",",
    "skip_leading_rows": "0",
    "allow_jagged_rows": True,
}
params = Struct()
params_content = baseparams.copy()
params_content[
    "data_path_template"
] = f"gs://mybucket/**/*.csv"
params_content["destination_table_name_template"] = "MyTable"
params.update(params_content)
tc_dict = {
    "display_name": target_display_name,
    "destination_dataset_id": "mydataset",
    "data_source_id": "google_cloud_storage",
    "schedule": "every 24 hours",
    "params": params,
}
tc = bigquery_datatransfer_v1.types.TransferConfig(**tc_dict)
response = client.create_transfer_config(
    request={"parent": parent, "transfer_config": tc}
)

보시다시피 작업 정의에 파티셔닝이 지정되어 있지 않으며 데이터베이스 테이블에서만 지정됩니다.선적 서류 비치:

Partitioning options Cloud Storage and Amazon S3 transfers can write to partitioned or non-partitioned destination tables. There are two types of table partitioning in BigQuery:

Partitioned tables: Tables that are partitioned based on a column. The column type must be a TIMESTAMP or DATE column. If the destination table is partitioned on a column, you identify the partitioning column when you create the destination table and specify its schema.

이 작업은 지난주까지 며칠 동안 성공적으로 실행되었습니다 (2020-11-04에 마지막으로 성공한 실행). 오늘 밤 (2020-11-10), 다음 오류 메시지와 함께 작업이 실패했습니다.

Incompatible table partitioning specification. Destination table exists with partitioning specification interval(type:MONTH,field:createdAt), but transfer target partitioning specification is interval(type:DAY,field:createdAt). Please retry after updating either the destination table or the transfer partitioning specification.

이러한 사양으로 테이블과 작업을 다시 만들려고 시도했지만 실제로 대상 테이블 파티셔닝 유형이 MONTH 일 때마다 실패합니다. 그러나 파티셔닝 유형이 DAY이면 여전히 작동합니다. 나를 가장 혼란스럽게하는 것은 문서에 존재하지 않는 것처럼 보이는 매개 변수와 같은 "전송 파티셔닝 사양"이라는 메시지입니다.

아직 문서화되지 않은 GCP의 최근 API 주요 변경 사항입니까?

  • 이전 c++ - std - : string을 음수 값으로 double로 변환하면 0이됩니다
  • 다음 css - 'max-height - 0'이있는 fieldset은 chrome v87 +에서 항상 오버플로됩니다