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:
|
- 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
atauDATE
.
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
- Tabel tanpa partisi
- Tabel tujuan:
mytable
- Tabel tujuan:
- Tabel berpartisi berdasarkan waktu penyerapan
- Tabel tujuan:
mytable$YYYYMMDD
- Perhatikan bahwa menit tidak dapat ditentukan.
- Tabel tujuan:
- Tabel berpartisi dengan kolom
- Tabel tujuan:
mytable
- Tentukan kolom partisi sebagai kolom
TIMESTAMP
atauDATE
saat membuat skema tabel.
- Tabel tujuan:
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
- Pelajari cara menyiapkan transfer Amazon S3.
- Pelajari BigQuery Data Transfer Service lebih lanjut.