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—misalnya us-east-1
    • ACCOUNT_ID:: ID Akun AWS 12 digit
    • DATABASE_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

Langkah selanjutnya