Parameter runtime dalam transfer Amazon S3

Saat menyiapkan transfer data di Cloud Storage, Azure Blob Storage, atau Amazon Simple Storage Service (Amazon S3), Anda dapat membuat parameter URI (atau jalur data) dan tabel tujuan. Dengan parameterisasi, Anda dapat memuat data dari bucket yang diatur berdasarkan tanggal. Parameter ini disebut sebagai parameter runtime untuk membedakannya dari parameter kueri.

Saat menggunakan parameter runtime dalam transfer, Anda dapat melakukan hal berikut:

  • Menentukan cara yang Anda inginkan untuk mempartisi tabel tujuan
  • Mengambil file yang cocok dengan tanggal tertentu

Parameter runtime yang tersedia

Saat menyiapkan transfer Cloud Storage, Blob Storage, atau Amazon S3, Anda dapat menentukan cara mempartisi tabel tujuan menggunakan parameter runtime.

Parameter Jenis template Nilai
run_time Stempel waktu terformat Dalam waktu UTC, sesuai jadwal. Untuk transfer terjadwal yang rutin, run_time merepresentasikan waktu eksekusi yang diinginkan. Misalnya, jika transfer disetel ke "setiap 24 jam", perbedaan run_time antara dua kueri berturut-turut akan tepat 24 jam—meskipun waktu eksekusi sebenarnya mungkin sedikit berbeda.

Lihat TransferRun.runTime
run_date String tanggal Tanggal parameter run_time dalam format berikut: %Y%m%d; misalnya, 20180101. Format ini kompatibel dengan tabel berpartisi berdasarkan waktu penyerapan.

Sistem template

Transfer Cloud Storage, Blob Storage, dan Amazon S3 mendukung parameter runtime dalam nama tabel tujuan dengan menggunakan sintaksis template.

Sintaksis template parameter

Sintaksis template mendukung template string dasar dan offset waktu. Parameter direferensikan dalam format berikut:

  • {run_date}
  • {run_time[+\-offset]|"time_format"}
Parameter Tujuan
run_date Parameter ini diganti dengan tanggal dalam format YYYYMMDD.
run_time Parameter ini mendukung properti berikut:


offset
Selisih waktu dinyatakan dalam jam (j), menit (m), dan detik (d) sesuai dengan urutan tersebut.
Hari (d) tidak didukung.
Desimal diizinkan, misalnya: 1.5h.

time_format
String pemformatan. Parameter pemformatan yang paling umum adalah tahun (%Y), bulan (%m), dan hari (%d).
Untuk tabel yang dipartisi, YYYYMMDD adalah akhiran yang diperlukan - ini setara dengan "%Y%m%d".

Baca selengkapnya tentang memformat elemen tanggal dan waktu.

Catatan penggunaan:
  • Tidak ada spasi kosong yang diizinkan antara run_time, selisih, dan format waktu.
  • Untuk menyertakan tanda kurung kurawal literal dalam string, Anda dapat meng-escape tanda kurung tersebut sebagai '\{' and '\}'.
  • Untuk menyertakan tanda kutip literal atau batang vertikal dalam time_format, seperti "YYYY|MM|DD", Anda dapat meng-escape karakter tersebut dalam string format seperti: '\"' atau '\|'.

Contoh template parameter

Contoh ini menunjukkan cara menentukan nama tabel tujuan dengan format waktu yang berbeda-beda, dan mengimbangi waktu proses.
run_time (UTC) Parameter dengan template Nama tabel tujuan output
15-02-2018 00:00:00 mytable mytable
15-02-2018 00:00:00 mytable_{run_time|"%Y%m%d"} mytable_20180215
15-02-2018 00:00:00 mytable_{run_time+25h|"%Y%m%d"} mytable_20180216
15-02-2018 00:00:00 mytable_{run_time-1h|"%Y%m%d"} mytable_20180214
15-02-2018 00:00:00 mytable_{run_time+1.5h|"%Y%m%d%H"}
atau
mytable_{run_time+90m|"%Y%m%d%H"}
mytable_2018021501
15-02-2018 00:00:00 {run_time+97s|"%Y%m%d"}_mytable_{run_time+97s|"%H%M%S"} 20180215_mytable_000137

Opsi partisi

Ada dua jenis tabel yang dipartisi di BigQuery:

  • Tabel yang dipartisi menurut waktu penyerapan. Untuk transfer Cloud Storage, Blob Storage, dan Amazon S3, waktu penyerapan adalah waktu proses transfer.
  • Tabel yang dipartisi berdasarkan kolom. Jenis kolom harus berupa kolom TIMESTAMP atau DATE.

Jika tabel tujuan dipartisi pada kolom, identifikasi kolom partisi saat membuat tabel tujuan dan tentukan skemanya. Pelajari lebih lanjut cara membuat tabel berpartisi berbasis kolom di Membuat dan menggunakan tabel berpartisi.

Contoh partisi

Catatan tentang penggunaan parameter

  • Jika mempartisi data berdasarkan zona waktu lokal, Anda harus menghitung selisih jam dari UTC secara manual menggunakan mekanisme offset dalam sintaksis template.
  • Menit tidak dapat ditentukan dalam parameter.
  • Anda diizinkan untuk menggunakan karakter pengganti untuk URI atau jalur data bersama dengan parameter pada nama tabel tujuan.

Contoh parameter runtime

Contoh berikut menunjukkan cara menggabungkan karakter pengganti dan parameter untuk kasus penggunaan umum. Asumsikan nama tabel adalah mytable dan run_time adalah 2018-02-15 00:00:00 (UTC) untuk semua contoh.

Mentransfer data ke tabel yang tidak berpartisi

Kasus penggunaan ini berlaku untuk memuat file baru dari bucket Cloud Storage, Blob Storage, atau Amazon S3 ke tabel yang tidak dipartisi. Contoh ini menggunakan karakter pengganti di URI atau jalur data dan menggunakan transfer refresh ad hoc untuk mengambil file baru.

Sumber data URI sumber atau jalur data Nama tabel tujuan
Cloud Storage gs://bucket/*.csv mytable
Amazon S3 s3://bucket/*.csv mytable
Blob Storage *.csv mytable

Memuat snapshot semua data ke tabel berpartisi berdasarkan waktu penyerapan

Dalam hal ini, semua data dalam URI atau jalur data yang ditentukan akan ditransfer ke tabel berpartisi menurut tanggal hari ini. Dalam transfer refresh, konfigurasi ini mengambil file yang ditambahkan sejak pemuatan terakhir dan menambahkannya ke partisi tertentu.

Sumber data URI sumber atau jalur data Nama tabel tujuan berparameter Nama tabel tujuan yang dievaluasi
Cloud Storage gs://bucket/*.csv mytable${run_time|"%Y%m%d"} mytable$20180215
Amazon S3 s3://bucket/*.csv mytable${run_time|"%Y%m%d"} mytable$20180215
Blob Storage *.csv mytable${run_time|"%Y%m%d"} mytable$20180215

Kasus penggunaan ini mentransfer data saat ini ke tabel berpartisi pada tanggal hari ini. Contoh ini juga berlaku untuk transfer refresh yang mengambil file yang baru ditambahkan dan cocok dengan tanggal tertentu, lalu memuat data ke dalam partisi yang sesuai.

Sumber data URI atau jalur data berparameter Nama tabel tujuan berparameter URI atau jalur data yang dievaluasi Nama tabel tujuan yang dievaluasi
Cloud Storage gs://bucket/events-{run_time|"%Y%m%d"}/*.csv mytable${run_time|"%Y%m%d"} gs://bucket/events-20180215/*.csv mytable$20180215
Amazon S3 s3://bucket/events-{run_time|"%Y%m%d"}/*.csv mytable${run_time|"%Y%m%d"} s3://bucket/events-20180215/*.csv mytable$20180215
Blob Storage events-{run_time|"%Y%m%d"}/*.csv mytable${run_time|"%Y%m%d"} events-20180215/*.csv mytable$20180215

Langkah berikutnya