Membuat set data gabungan AWS Glue
Dokumen ini menjelaskan cara membuat set data gabungan di BigQuery yang ditautkan ke database yang ada di AWS Glue.
Set data gabungan adalah koneksi antara BigQuery dan sumber data eksternal di tingkat set data. Tabel dalam set data gabungan secara otomatis diisi dari tabel di sumber data eksternal yang sesuai. Anda dapat membuat kueri tabel ini secara langsung di BigQuery, tetapi Anda tidak dapat membuat modifikasi, penambahan, atau penghapusan. Namun, setiap update yang Anda lakukan di sumber data eksternal akan otomatis diterapkan di BigQuery.
Sebelum memulai
Pastikan Anda memiliki koneksi untuk mengakses data AWS Glue.
Untuk membuat atau mengubah koneksi, lihat Menghubungkan ke Amazon S3, dan sertakan pernyataan kebijakan tambahan berikut untuk AWS Glue di kebijakan Identity and Access Management AWS untuk BigQuery:
{ "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:GetTable", "glue:GetTables", "glue:GetPartitions" ], "Resource": [ "arn:aws:glue:REGION:ACCOUNT_ID:catalog", "arn:aws:glue:REGION:ACCOUNT_ID:database/DATABASE_NAME", "arn:aws:glue:REGION:ACCOUNT_ID:table/DATABASE_NAME/*" ] }
Ganti kode berikut:
REGION
: region AWS—misalnyaus-east-1
ACCOUNT_ID:
: ID Akun AWS 12 digitDATABASE_NAME
: nama database AWS Glue
Izin yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk membuat set data gabungan, minta administrator untuk memberi Anda peran IAM Admin BigQuery (roles/bigquery.admin
).
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.
Peran yang telah ditentukan ini berisi izin yang diperlukan untuk membuat set data gabungan. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk membuat set data gabungan:
-
bigquery.datasets.create
-
bigquery.connections.use
-
bigquery.connections.delegate
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran yang telah ditetapkan sebelumnya.
Untuk mengetahui informasi lebih lanjut tentang peran dan izin IAM di BigQuery, baca Pengantar IAM.
Membuat set data gabungan
Untuk membuat set data gabungan, lakukan langkah berikut:
bq
Di lingkungan command line, buat set data menggunakan perintah bq mk
:
bq --location=LOCATION mk --dataset \ --external_source aws-glue://AWS_GLUE_SOURCE \ --connection_id PROJECT_ID.CONNECTION_LOCATION.CONNECTION_NAME \ DATASET_NAME
Ganti kode berikut:
LOCATION
: lokasi set data baru Anda di BigQuery—misalnya,aws-us-east-1
. Setelah membuat set data, Anda tidak dapat mengubah lokasinya. Anda dapat menetapkan nilai lokasi default menggunakan file.bigqueryrc
.AWS_GLUE_SOURCE
: Amazon Resource Name (ARN) dari database AWS Glue—misalnya,arn:aws:glue:us-east-1:123456789:database/test_database
.PROJECT_ID
: Project ID BigQuery Anda.CONNECTION_LOCATION
: lokasi koneksi AWS Anda—misalnya,aws-us-east-1
.CONNECTION_NAME
: nama koneksi AWS Anda.DATASET_NAME
: nama set data baru Anda di BigQuery. Untuk membuat set data dalam project selain project default Anda, tambahkan project ID ke nama set data dalam format berikut:PROJECT_ID
:DATASET_NAME
.
API
Panggil metode datasets.insert
dengan resource set data dan kolom externalDatasetReference
yang ditentukan untuk database AWS Glue Anda.
Mencantumkan tabel dalam set data gabungan
Untuk mencantumkan tabel yang tersedia untuk kueri dalam set data gabungan Anda, baca Mencantumkan set data.
Mendapatkan informasi tabel
Untuk mendapatkan informasi tentang tabel dalam set data gabungan, seperti detail skema, lihat Mendapatkan informasi tabel.
Mengontrol akses ke tabel
Untuk mengelola akses ke tabel dalam set data gabungan, lihat Mengontrol akses ke resource dengan IAM.
Membuat kueri data AWS Glue
Membuat kueri tabel dalam set data gabungan sama dengan membuat kueri tabel di set data BigQuery lainnya.
Anda dapat membuat kueri tabel AWS Glue dalam format berikut:
- CSV (terkompresi dan tidak terkompresi)
- JSON (terkompresi dan tidak dikompresi)
- Parquet
- ORC
- Avro
- Iceberg
Detail pemetaan tabel
Setiap tabel yang aksesnya Anda berikan di database AWS Glue akan muncul sebagai tabel yang setara di set data BigQuery Anda.
Format
Format setiap tabel BigQuery ditentukan oleh kolom berikut di tabel AWS Glue masing-masing:
InputFormat
(Table.StorageDescriptor.InputFormat
)OutputFormat
(Table.StorageDescriptor.OutputFormat
)SerializationLib
(Table.StorageDescriptor.SerdeInfo.SerializationLibrary
)
Satu-satunya pengecualian adalah tabel Iceberg, yang menggunakan kolom TableType
(Table.Parameters["table_type"]
).
Misalnya, tabel AWS Glue dengan kolom berikut dipetakan ke tabel ORC di BigQuery:
InputFormat
="org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"
OutputFormat
="org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat"
SerializationLib
="org.apache.hadoop.hive.ql.io.orc.OrcSerde"
Lokasi
Lokasi setiap tabel BigQuery ditentukan oleh hal berikut:
- Tabel Iceberg: kolom
Table.Parameters["metadata_location"]
dalam tabel AWS Glue - Tabel non-Iceberg yang tidak dipartisi: kolom
Table.StorageDescriptor.Location
dalam tabel AWS Glue - Tabel non-Iceberg berpartisi: AWS Glue GetPartitions API
Properti lainnya
Selain itu, beberapa properti tabel AWS Glue otomatis dipetakan ke opsi khusus format di BigQuery:
Format | SerializationLib | Nilai tabel AWS Glue | Opsi BigQuery |
---|---|---|---|
CSV | LazySimpleSerDe | Table.StorageDescriptor.SerdeInfo.Parameters["field.delim"] | CsvOptions.fieldDelimiter |
CSV | LazySimpleSerDe | Table.StorageDescriptor.Parameters["serialization.encoding"] | CsvOptions.encoding |
CSV | LazySimpleSerDe | Table.StorageDescriptor.Parameters["skip.header.line.count"] | CsvOptions.skipLeadingRows |
CSV | OpenCsvSerDe | Table.StorageDescriptor.SerdeInfo.Parameters["separatorChar"] | CsvOptions.fieldDelimiter |
CSV | OpenCsvSerDe | Table.StorageDescriptor.SerdeInfo.Parameters["quoteChar"] | CsvOptions.quote |
CSV | OpenCsvSerDe | Table.StorageDescriptor.Parameters["serialization.encoding"] | CsvOptions.encoding |
CSV | OpenCsvSerDe | Table.StorageDescriptor.Parameters["skip.header.line.count"] | CsvOptions.skipLeadingRows |
JSON | Hive JsonSerDe | Table.StorageDescriptor.Parameters["serialization.encoding"] | JsonOptions.encoding |
Membuat tampilan dalam set data gabungan
Anda tidak dapat membuat tampilan di set data gabungan. Namun, Anda dapat membuat tampilan dalam set data standar yang didasarkan pada tabel dalam set data gabungan. Untuk mengetahui informasi selengkapnya, lihat Membuat tampilan.
Menghapus set data gabungan
Menghapus set data gabungan sama dengan menghapus set data BigQuery lainnya. Untuk mengetahui informasi selengkapnya, lihat Menghapus set data.
Harga
Untuk mengetahui informasi tentang harga, lihat harga BigQuery Omni.
Batasan
- Semua batasan BigQuery Omni berlaku.
- Anda tidak dapat menambahkan, menghapus, atau memperbarui data atau metadata dalam tabel di set data gabungan AWS Glue.
- Anda tidak dapat membuat tabel baru atau tampilan terwujud dalam set data gabungan AWS Glue.
- Anda hanya dapat membuat set data gabungan AWS Glue melalui alat bq dan API. Konsol Google Cloud tidak didukung.
- Tampilan
INFORMATION_SCHEMA
tidak didukung. - Keamanan tingkat baris, keamanan tingkat kolom, cache metadata, dan penyamaran data tidak didukung.
- Jenis data Apache Hive
UNION
tidak didukung untuk tabel Avro.
Langkah selanjutnya
- Pelajari BigQuery Omni lebih lanjut.
- Coba lab BigQuery Omni dengan AWS.