File CSV Cloud Storage ke pipeline BigQuery adalah pipeline batch yang memungkinkan Anda membaca data dari file CSV yang disimpan di Cloud Storage dan menambahkan hasilnya ke tabel BigQuery.
File CSV dapat dikompresi atau tidak dikompresi dalam format yang tercantum di halaman Compression
Enum SDK.
Persyaratan pipeline
Untuk menggunakan template ini, pipeline Anda harus memenuhi persyaratan berikut.
File JSON skema BigQuery
Buat file JSON yang mendeskripsikan skema BigQuery Anda.
Pastikan skema memiliki array JSON level teratas yang berjudul BigQuery Schema
dan isinya mengikuti pola {"name": "COLUMN_NAME", "type": "DATA_TYPE"}
.
Template batch file CSV Cloud Storage ke BigQuery tidak mendukung
impor data ke
kolom STRUCT
(Record) di tabel BigQuery target.
JSON berikut menjelaskan contoh skema BigQuery:
{ "BigQuery Schema": [ { "name": "location", "type": "STRING" }, { "name": "name", "type": "STRING" }, { "name": "age", "type": "STRING" }, { "name": "color", "type": "STRING" }, { "name": "coffee", "type": "STRING" } ] }
Skema tabel error
Tabel BigQuery yang menyimpan data yang ditolak dari file CSV harus cocok dengan skema tabel yang ditentukan di sini.
{ "BigQuery Schema": [ { "name": "RawContent", "type": "STRING" }, { "name": "ErrorMsg", "type": "STRING" } ] }
Parameter template
Parameter yang diperlukan
- inputFilePattern : Jalur Cloud Storage ke file CSV yang berisi teks yang akan diproses. (Contoh: gs://your-bucket/path/*.csv).
- schemaJSONPath : Jalur Cloud Storage ke file JSON yang menentukan skema BigQuery Anda.
- outputTable : Nama tabel BigQuery yang menyimpan data yang diproses. Jika Anda menggunakan kembali tabel BigQuery yang sudah ada, data akan ditambahkan ke tabel tujuan.
- bigQueryLoadingTemporaryDirectory : Direktori sementara yang akan digunakan selama proses pemuatan BigQuery. (Contoh: gs://bucket-anda/file-anda/temp_dir).
- badRecordsOutputTable : Nama tabel BigQuery yang akan digunakan untuk menyimpan data yang ditolak saat memproses file CSV. Jika Anda menggunakan kembali tabel BigQuery yang sudah ada, data akan ditambahkan ke tabel tujuan. Skema tabel ini harus cocok dengan skema tabel error (https://cloud.google.com/dataflow/docs/guides/templates/provided/cloud-storage-csv-to-bigquery#GcsCSVToBigQueryBadRecordsSchema).
- pemisah : Pemisah kolom yang digunakan file CSV. (Contoh: ,).
- csvFormat : Format CSV sesuai dengan format CSV Apache Commons. Default-nya adalah: Default.
Parameter opsional
- containsHeaders : Apakah header disertakan dalam file CSV. Defaultnya adalah: false.
- csvFileEncoding : Format encoding karakter file CSV. Nilai yang Diizinkan adalah US-ASCII, ISO-8859-1, UTF-8, dan UTF-16. Setelan defaultnya adalah: UTF-8.
Menjalankan template
Konsol
- Buka halaman Create job from template Dataflow. Buka Buat tugas dari template
- Di kolom Nama tugas, masukkan nama tugas yang unik.
- Opsional: Untuk Endpoint regional, pilih nilai dari menu drop-down. Region defaultnya
adalah
us-central1
.Untuk mengetahui daftar region tempat Anda dapat menjalankan tugas Dataflow, lihat Lokasi Dataflow.
- Dari menu drop-down Dataflow template, pilih the CSV files on Cloud Storage to BigQuery (Batch) template.
- Di kolom parameter yang disediakan, masukkan nilai parameter Anda.
- Klik Run job.
gcloud
Di shell atau terminal, jalankan template:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates-REGION_NAME/VERSION/GCS_CSV_to_BigQuery \ --region REGION_NAME \ --parameters \ inputFilePattern=PATH_TO_CSV_DATA,\ schemaJSONPath=PATH_TO_BIGQUERY_SCHEMA_JSON,\ outputTable=BIGQUERY_DESTINATION_TABLE,\ badRecordsOutputTable=BIGQUERY_BAD_RECORDS_TABLE,\ csvFormat=CSV_FORMAT,\ delimiter=DELIMITER,\ bigQueryLoadingTemporaryDirectory=PATH_TO_TEMP_DIR_ON_GCS,\ containsHeaders=CONTAINS_HEADERS,\ csvFileEncoding=CSV_FILE_ENCODING
Ganti kode berikut:
PROJECT_ID
: ID project Google Cloud tempat Anda ingin menjalankan tugas DataflowJOB_NAME
: nama tugas unik pilihan AndaVERSION
: versi template yang ingin Anda gunakanAnda dapat menggunakan nilai berikut:
latest
untuk menggunakan template versi terbaru, yang tersedia di folder induk tanpa tanggal di bucket—gs://dataflow-templates-REGION_NAME/latest/- nama versi, seperti
2023-09-12-00_RC00
, untuk menggunakan versi template tertentu, yang dapat ditemukan bertingkat dalam folder induk bertanggal masing-masing di bucket—gs://dataflow-templates-REGION_NAME/
REGION_NAME
: region tempat Anda ingin men-deploy tugas Dataflow—misalnya,us-central1
PATH_TO_CSV_DATA
: jalur Cloud Storage ke file CSV AndaPATH_TO_BIGQUERY_SCHEMA_JSON
: jalur Cloud Storage ke file JSON yang berisi definisi skemaBIGQUERY_DESTINATION_TABLE
: nama tabel tujuan BigQueryBIGQUERY_BAD_RECORDS_TABLE
: nama tabel data buruk BigQueryPATH_TO_TEMP_DIR_ON_GCS
: jalur Cloud Storage ke direktori sementaraDELIMITER
: Pembatas file CSVCSV_FORMAT
: Spesifikasi format CSV untuk mengurai dataCONTAINS_HEADERS
: apakah file CSV berisi headerCSV_FILE_ENCODING
: encoding dalam file CSV
API
Untuk menjalankan template menggunakan REST API, kirim permintaan POST HTTP. Untuk mengetahui informasi selengkapnya tentang
API dan cakupan otorisasinya, lihat
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates-LOCATION/VERSION/GCS_CSV_to_BigQuery { "jobName": "JOB_NAME", "parameters": { "inputFilePattern":"PATH_TO_CSV_DATA", "schemaJSONPath": "PATH_TO_BIGQUERY_SCHEMA_JSON", "outputTable":"BIGQUERY_DESTINATION_TABLE", "badRecordsOutputTable":"BIGQUERY_BAD_RECORDS_TABLE", "csvFormat":"CSV_FORMAT", "delimiter":"DELIMITER", "bigQueryLoadingTemporaryDirectory": "PATH_TO_TEMP_DIR_ON_GCS", "containsHeaders": "CONTAINS_HEADERS", "csvFileEncoding": "CSV_FILE_ENCODING" }, "environment": { "zone": "us-central1-f" } }
Ganti kode berikut:
PROJECT_ID
: ID project Google Cloud tempat Anda ingin menjalankan tugas DataflowJOB_NAME
: nama tugas unik pilihan AndaVERSION
: versi template yang ingin Anda gunakanAnda dapat menggunakan nilai berikut:
latest
untuk menggunakan template versi terbaru, yang tersedia di folder induk tanpa tanggal di bucket—gs://dataflow-templates-REGION_NAME/latest/- nama versi, seperti
2023-09-12-00_RC00
, untuk menggunakan versi template tertentu, yang dapat ditemukan bertingkat dalam folder induk bertanggal masing-masing di bucket—gs://dataflow-templates-REGION_NAME/
LOCATION
: region tempat Anda ingin men-deploy tugas Dataflow—misalnya,us-central1
PATH_TO_CSV_DATA
: jalur Cloud Storage ke file CSV AndaPATH_TO_BIGQUERY_SCHEMA_JSON
: jalur Cloud Storage ke file JSON yang berisi definisi skemaBIGQUERY_DESTINATION_TABLE
: nama tabel tujuan BigQueryBIGQUERY_BAD_RECORDS_TABLE
: nama tabel data buruk BigQueryPATH_TO_TEMP_DIR_ON_GCS
: jalur Cloud Storage ke direktori sementaraDELIMITER
: Pembatas file CSVCSV_FORMAT
: Spesifikasi format CSV untuk mengurai dataCONTAINS_HEADERS
: apakah file CSV berisi headerCSV_FILE_ENCODING
: encoding dalam file CSV
Langkah selanjutnya
- Pelajari template Dataflow.
- Lihat daftar template yang disediakan Google.