Transfer data bigquery gagal jika tabel target tidak dipartisi setiap hari

Saya memiliki pengaturan pekerjaan transfer data Bigquery ke tabel tujuan yang dipartisi berdasarkan bulan. Tabel telah dibuat dengan perintah berikut:

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

Tugas transfer data telah dibuat dengan klien Python BQDTS, seperti ini:

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}
)

Seperti yang Anda lihat, tidak ada partisi yang ditentukan dalam ketentuan pekerjaan, partisi tersebut hanya ditentukan dalam tabel database, sebagaimana seharusnya menurut dokumentasi:

Opsi partisi Transfer Cloud Storage dan Amazon S3 dapat menulis ke tabel tujuan yang dipartisi atau tidak dipartisi. Ada dua jenis partisi tabel di BigQuery:

Tabel yang dipartisi: Tabel yang dipartisi berdasarkan kolom. Jenis kolom harus berupa kolom TIMESTAMP atau DATE. Jika tabel tujuan dipartisi pada kolom, Anda mengidentifikasi kolom partisi saat Anda membuat tabel tujuan dan menentukan skemanya.

Pekerjaan ini telah berjalan dengan sukses selama berhari-hari, hingga minggu lalu (Terakhir berhasil dijalankan pada 04-11-2020). Malam ini (10-11-2020), pekerjaan gagal dengan pesan kesalahan berikut:

Spesifikasi partisi tabel tidak kompatibel. Tabel tujuan ada dengan interval spesifikasi partisi (tipe:MONTH,bidang:createdAt), tetapi spesifikasi partisi target transfer adalah interval (tipe:DAY,field:createdAt). Silakan coba lagi setelah memperbarui tabel tujuan atau spesifikasi partisi transfer.

Saya telah mencoba membuat ulang tabel dan pekerjaan dengan spesifikasi seperti itu dan memang gagal setiap kali tipe partisi tabel tujuan adalah BULAN. Namun, ini masih berfungsi jika tipe partisinya adalah DAY. Yang paling membingungkan saya adalah pesan spesifikasi partisi transfer sebagai parameter sepertinya tidak ada dalam dokumentasi.

Apakah ini merupakan perubahan terbaru yang dapat menyebabkan gangguan API di GCP dan belum didokumentasikan?


person matthieu.cham    schedule 11.11.2020    source sumber
comment
Saya menyarankan Anda untuk melaporkan masalah ini ke pelacak masalah GCP seperti ini tampaknya bukan perilaku yang normal   -  person rsalinas    schedule 13.11.2020
comment
Ya, dan tim dukungan GCP sedang mengerjakannya. Saya akan memperbarui pertanyaan ini jika sudah terselesaikan   -  person matthieu.cham    schedule 13.11.2020
comment
Berikut tanggapan dari Dukungan Google: Mengenai kesalahan partisi yang tidak kompatibel, tim Teknik BigQuery telah mengidentifikasi masalahnya dan mereka sedang memperbaikinya. Tim memperkirakan perbaikan ini akan siap pada akhir minggu pertama bulan Desember.   -  person matthieu.cham    schedule 24.11.2020


Jawaban (1)


Setelah beberapa minggu melakukan penyelidikan dan perbaikan bug di sisi Tim GCP, masalah tersebut telah teratasi sejak 7 Desember 2020. Memang benar itu adalah bug di layanan Big Query Transfer.

person matthieu.cham    schedule 07.12.2020