Membuat tabel BigLake Blob Storage

Dokumen ini menjelaskan cara membuat tabel BigLake Blob Storage. Tabel BigLake memungkinkan Anda menggunakan delegasi akses untuk membuat kueri data di Blob Storage. Delegasi akses memisahkan akses ke tabel BigLake dari akses ke datastore yang mendasarinya.

Untuk informasi tentang aliran data antara BigQuery dan Blob Storage, baca Aliran data saat membuat kueri data.

Sebelum memulai

Pastikan Anda memiliki koneksi untuk mengakses data di Blob Storage.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk membuat tabel eksternal, minta administrator untuk memberi Anda peran IAM BigQuery Admin (roles/bigquery.admin) di set data Anda. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk membuat tabel eksternal. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk membuat tabel eksternal:

  • bigquery.tables.create
  • bigquery.connections.delegate

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Membuat set data

Sebelum membuat tabel eksternal, Anda perlu membuat set data di region yang didukung. Pilih salah satu opsi berikut:

Konsol

  1. Buka halaman BigQuery.

    Buka BigQuery

  2. Di panel Explorer, pilih project tempat Anda ingin membuat set data.
  3. Perluas opsi Tampilkan tindakan, lalu klik Buat set data.
  4. Di halaman Buat set data, tentukan detail berikut:
    1. Untuk ID Set Data, masukkan nama set data yang unik.
    2. Untuk Lokasi data, pilih region yang didukung.
    3. Opsional: Untuk menghapus tabel secara otomatis, pilih kotak centang Enable table expiration dan tetapkan Default maximum table age dalam satuan hari. Data di Azure tidak dihapus saat masa berlaku tabel habis.
    4. Jika Anda ingin menggunakan kolasi default, luaskan bagian Advanced options lalu pilih opsi Enable default collation.
    5. Klik Buat set data.

SQL

Gunakan pernyataan DDL CREATE SCHEMA. Contoh berikut membuat set data di region azure-eastus2:

  1. Di Konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

    CREATE SCHEMA mydataset
    OPTIONS (
      location = 'azure-eastus2');

  3. Klik Run.

Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.

bq

Di lingkungan command line, buat set data menggunakan perintah bq mk:

bq --location=LOCATION mk \
    --dataset \
PROJECT_ID:DATASET_NAME

Parameter --project_id akan mengganti project default.

Ganti kode berikut:

  • LOCATION: lokasi set data Anda

    Untuk mengetahui informasi tentang region yang didukung, lihat Lokasi. Setelah membuat set data, Anda tidak dapat mengubah lokasinya. Anda dapat menetapkan nilai default untuk lokasi menggunakan file .bigqueryrc.

  • PROJECT_ID: project ID Anda

  • DATASET_NAME: nama set data yang ingin Anda buat

    Untuk membuat set data dalam project selain project default Anda, tambahkan project ID ke nama set data dalam format berikut: PROJECT_ID:DATASET_NAME.

Membuat tabel BigLake pada data yang tidak dipartisi

Pilih salah satu opsi berikut:

Konsol

  1. Buka halaman BigQuery.

    Buka BigQuery

  2. Di panel Explorer, luaskan project Anda, lalu pilih set data.

  3. Di bagian Info set data, klik Buat tabel.

  4. Di halaman Create table, di bagian Source, lakukan hal berikut:

    1. Untuk Create table from, pilih Azure Blob Storage.
    2. Untuk Select Azure Blob Storage path, masukkan jalur Blob Storage menggunakan format berikut: azure://AZURE_STORAGE_ACCOUNT_NAME.blob.core.windows.net/CONTAINER_NAME/FILE_PATH

      Ganti kode berikut:

      • AZURE_STORAGE_ACCOUNT_NAME: Nama akun Blob Storage. Region akun harus sama dengan region set data.
      • CONTAINER_NAME: Nama container Blob Storage.
      • FILE_PATH: Jalur data yang mengarah ke data Blob Storage. Misalnya, untuk satu file CSV, FILE_PATH dapat berupa myfile.csv.
    3. Untuk File format, pilih format data di Azure. Format yang didukung adalah AVRO, CSV, DELTA_LAKE, ICEBERG, JSONL, ORC, dan PARQUET.

  5. Di bagian Destination, lakukan tindakan berikut:

    1. Untuk Dataset, pilih set data yang sesuai.
    2. Di kolom Tabel, masukkan nama tabel.
    3. Pastikan Jenis tabel ditetapkan ke Tabel eksternal.
    4. Untuk Connection ID, pilih ID koneksi yang sesuai dari menu drop-down. Untuk informasi tentang koneksi, lihat Menghubungkan ke Blob Storage.
  6. Di bagian Schema, Anda dapat mengaktifkan schema auto-detection atau menentukan skema secara manual jika Anda memiliki file sumber. Jika tidak memiliki file sumber, Anda harus menentukan skema secara manual.

    • Untuk mengaktifkan deteksi otomatis skema, pilih opsi Auto-detect.

    • Untuk menentukan skema secara manual, biarkan opsi Deteksi otomatis tidak dicentang. Aktifkan Edit sebagai teks dan masukkan skema tabel sebagai array JSON.

  7. Klik Create table.

SQL

Untuk membuat tabel BigLake, gunakan pernyataan CREATE EXTERNAL TABLE dengan klausa WITH CONNECTION:

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

    CREATE EXTERNAL TABLE DATASET_NAME.TABLE_NAME
    WITH CONNECTION `AZURE_LOCATION.CONNECTION_NAME`
      OPTIONS (
        format = 'DATA_FORMAT',
        uris = ['azure://AZURE_STORAGE_ACCOUNT_NAME.blob.core.windows.net/CONTAINER_NAME/FILE_PATH']);

    Ganti kode berikut:

    • DATASET_NAME: nama set data yang Anda buat
    • TABLE_NAME: nama yang ingin Anda berikan ke tabel ini
    • AZURE_LOCATION: lokasi Azure di Google Cloud, seperti azure-eastus2
    • CONNECTION_NAME: nama koneksi yang Anda buat
    • DATA_FORMAT: salah satu format gabungan BigQuery yang didukung, seperti AVRO, CSV, DELTA_LAKE, atau ICEBERG (pratinjau)
    • AZURE_STORAGE_ACCOUNT_NAME: nama akun Blob Storage
    • CONTAINER_NAME: nama penampung Blob Storage
    • FILE_PATH: jalur data yang mengarah ke data Blob Storage

  3. Klik Run.

Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.

Contoh:

CREATE EXTERNAL TABLE absdataset.abstable
WITH CONNECTION `azure-eastus2.abs-read-conn`
  OPTIONS (
    format = 'CSV', uris = ['azure://account_name.blob.core.windows.net/container/path/file.csv']);

bq

Buat file definisi tabel:

bq mkdef  \
    --source_format=DATA_FORMAT \
    --connection_id=AZURE_LOCATION.CONNECTION_NAME \
    "azure://AZURE_STORAGE_ACCOUNT_NAME.blob.core.windows.net/CONTAINER_NAME/FILE_PATH" > table_def

Ganti kode berikut:

  • DATA_FORMAT: salah satu format gabungan BigQuery yang didukung, seperti AVRO, CSV, ICEBERG, atau PARQUET
  • AZURE_LOCATION: lokasi Azure di Google Cloud, seperti azure-eastus2
  • CONNECTION_NAME: nama koneksi yang Anda buat
  • AZURE_STORAGE_ACCOUNT_NAME: nama akun Blob Storage
  • CONTAINER_NAME: nama penampung Blob Storage
  • FILE_PATH: jalur data yang mengarah ke data Blob Storage

Selanjutnya, buat tabel BigLake:

bq mk --external_table_definition=table_def DATASET_NAME.TABLE_NAME

Ganti kode berikut:

  • DATASET_NAME: nama set data yang Anda buat
  • TABLE_NAME: nama yang ingin Anda berikan ke tabel ini

Misalnya, perintah berikut membuat tabel BigLake baru, my_dataset.my_table, yang dapat mengkueri data Blob Storage yang tersimpan di jalur azure://account_name.blob.core.windows.net/container/path dan memiliki koneksi baca di lokasi azure-eastus2:

bq mkdef \
    --source_format=AVRO \
    --connection_id=azure-eastus2.read-conn \
    "azure://account_name.blob.core.windows.net/container/path" > table_def

bq mk \
    --external_table_definition=table_def my_dataset.my_table

API

Panggil metode API metode tables.insert, lalu buat ExternalDataConfiguration di resource Table yang Anda teruskan.

Tentukan properti schema atau tetapkan properti autodetect ke true agar dapat mengaktifkan deteksi otomatis skema untuk sumber data yang didukung.

Tentukan properti connectionId untuk mengidentifikasi koneksi yang digunakan untuk terhubung ke Blob Storage.

Membuat tabel BigLake pada data yang dipartisi

Anda dapat membuat tabel BigLake untuk data yang dipartisi Hive di Blob Storage. Setelah membuat tabel yang dipartisi secara eksternal, Anda tidak dapat mengubah kunci partisi. Anda harus membuat ulang tabel untuk mengubah kunci partisi.

Untuk membuat tabel BigLake berdasarkan data berpartisi Hive, pilih salah satu opsi berikut:

Konsol

  1. Buka halaman BigQuery.

    Buka BigQuery

  2. Di panel Penjelajah, luaskan project Anda dan pilih set data.

  3. Klik Tampilkan tindakan, lalu klik Buat tabel. Tindakan ini akan membuka panel Buat tabel.

  4. Di bagian Source, tentukan detail berikut:

    1. Untuk Create table from, pilih salah satu opsi berikut:

      • Amazon S3
      • Azure Blob Storage
    2. Berikan jalur ke folder tersebut menggunakan karakter pengganti. Contoh:

      • Untuk Amazon S3: s3://mybucket/*
      • Untuk Blob Storage: azure://mystorageaccount.blob.core.windows.net/mycontainer/*

      Folder tersebut harus berada di lokasi yang sama dengan set data yang berisi tabel yang ingin Anda buat, tambahkan, atau timpa.

    3. Dari daftar Format file, pilih jenis file.

    4. Pilih kotak centang Partisi data sumber, lalu tentukan detail berikut:

      1. Untuk Pilih Awalan URI Sumber, masukkan awalan URI. Contoh, s3://mybucket/my_files.
      2. Opsional: Untuk mewajibkan filter partisi pada semua kueri untuk tabel ini, centang kotak Memerlukan filter partisi. Mewajibkan filter partisi dapat mengurangi biaya dan meningkatkan performa. Untuk mengetahui informasi selengkapnya, lihat Mewajibkan filter predikat di kunci partisi dalam kueri.
      3. Di bagian Mode inferensi partisi, pilih salah satu opsi berikut:

        • Otomatis menyimpulkan jenis: tetapkan mode deteksi skema partisi ke AUTO.
        • Semua kolom adalah string: tetapkan mode deteksi skema partisi ke STRINGS.
        • Sediakan sendiri: tetapkan mode deteksi skema partisi ke CUSTOM dan masukkan informasi skema secara manual untuk kunci partisi. Untuk mengetahui informasi selengkapnya, lihat Skema kunci partisi kustom.
  5. Di bagian Tujuan, tentukan detail berikut:

    1. Untuk Project, pilih project tempat Anda ingin membuat tabel.
    2. Untuk Set data, pilih set data tempat Anda ingin membuat tabel.
    3. Untuk Tabel, masukkan nama tabel yang ingin Anda buat.
    4. Untuk jenis Tabel, pastikan memilih Tabel eksternal.
    5. Untuk Connection ID, pilih koneksi yang Anda buat sebelumnya.
  6. Di bagian Schema, Anda dapat mengaktifkan deteksi otomatis skema atau menentukan skema secara manual jika Anda memiliki file sumber. Jika tidak memiliki file sumber, Anda harus menentukan skema secara manual.

    • Untuk mengaktifkan deteksi otomatis skema, pilih opsi Auto-detect.

    • Untuk menentukan skema secara manual, biarkan opsi Deteksi otomatis tidak dicentang. Aktifkan Edit sebagai teks dan masukkan skema tabel sebagai array JSON.

  7. Untuk mengabaikan baris dengan nilai kolom tambahan yang tidak cocok dengan skema, luaskan bagian Opsi lanjutan dan pilih Nilai tidak dikenal.

  8. Klik Buat tabel.

SQL

Gunakan pernyataan DDL CREATE EXTERNAL TABLE:

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

    CREATE EXTERNAL TABLE `PROJECT_ID.DATASET.EXTERNAL_TABLE_NAME`
    WITH PARTITION COLUMNS
    (
      PARTITION_COLUMN PARTITION_COLUMN_TYPE,
    )
    WITH CONNECTION `PROJECT_ID.REGION.CONNECTION_ID`
    OPTIONS (
      hive_partition_uri_prefix = "HIVE_PARTITION_URI_PREFIX",
      uris=['FILE_PATH'],
      format ="TABLE_FORMAT"
    );

    Ganti kode berikut:

    • PROJECT_ID: nama project tempat Anda ingin membuat tabel—misalnya, myproject
    • DATASET: nama set data BigQuery tempat Anda ingin membuat tabel —misalnya, mydataset
    • EXTERNAL_TABLE_NAME: nama tabel yang ingin Anda buat—misalnya, mytable
    • PARTITION_COLUMN: nama kolom partisi
    • PARTITION_COLUMN_TYPE: jenis kolom partisi
    • REGION: region yang berisi koneksi—misalnya, us
    • CONNECTION_ID: nama koneksi—misalnya, myconnection
    • HIVE_PARTITION_URI_PREFIX: awalan uri partisi hive–misalnya:

      • s3://mybucket/
      • azure://mystorageaccount.blob.core.windows.net/mycontainer/
    • FILE_PATH: jalur ke sumber data untuk tabel eksternal yang ingin Anda buat—misalnya:

      • s3://mybucket/*.parquet
      • azure://mystorageaccount.blob.core.windows.net/mycontainer/*.parquet
    • TABLE_FORMAT: format tabel yang ingin Anda buat—misalnya, PARQUET

  3. Klik Run.

Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.

Contoh

Contoh berikut membuat tabel BigLake berdasarkan data yang dipartisi di Amazon S3. Skema terdeteksi secara otomatis.

CREATE EXTERNAL TABLE `my_dataset.my_table`
WITH PARTITION COLUMNS
(
  sku STRING,
)
WITH CONNECTION `us.my-connection`
OPTIONS(
  hive_partition_uri_prefix = "s3://mybucket/products",
  uris = ['s3://mybucket/products/*']
);

Contoh berikut membuat tabel BigLake pada data yang dipartisi di Blob Storage. Skema telah ditentukan.

CREATE EXTERNAL TABLE `my_dataset.my_table`
(
  ProductId INTEGER,
  ProductName, STRING,
  ProductType, STRING
)
WITH PARTITION COLUMNS
(
  sku STRING,
)
WITH CONNECTION `us.my-connection`
OPTIONS(
  hive_partition_uri_prefix = "azure://mystorageaccount.blob.core.windows.net/mycontainer/products",
  uris = ['azure://mystorageaccount.blob.core.windows.net/mycontainer/*']
);

bq

Pertama, gunakan perintah bq mkdef untuk membuat file definisi tabel:

bq mkdef \
--source_format=SOURCE_FORMAT \
--connection_id=REGION.CONNECTION_ID \
--hive_partitioning_mode=PARTITIONING_MODE \
--hive_partitioning_source_uri_prefix=URI_SHARED_PREFIX \
--require_hive_partition_filter=BOOLEAN \
 URIS > DEFINITION_FILE

Ganti kode berikut:

  • SOURCE_FORMAT: format sumber data eksternal. Contoh, CSV.
  • REGION: region yang berisi koneksi—misalnya, us.
  • CONNECTION_ID: nama koneksi—misalnya, myconnection.
  • PARTITIONING_MODE: mode partisi Hive. Gunakan salah satu nilai berikut:
    • AUTO: Mendeteksi nama dan jenis kunci secara otomatis.
    • STRINGS: Mengonversi nama kunci menjadi string secara otomatis.
    • CUSTOM: Mengenkode skema kunci di awalan URI sumber.
  • URI_SHARED_PREFIX: awalan URI sumber.
  • BOOLEAN: Menentukan apakah akan memerlukan filter predikat pada waktu kueri. Flag ini bersifat opsional. Nilai defaultnya adalah false.
  • URIS: jalur ke Amazon S3 atau folder Blob Storage, menggunakan format karakter pengganti.
  • DEFINITION_FILE: jalur ke file definisi tabel di mesin lokal Anda.

Jika PARTITIONING_MODE adalah CUSTOM, sertakan skema kunci partisi dalam awalan URI sumber, menggunakan format berikut:

--hive_partitioning_source_uri_prefix=GCS_URI_SHARED_PREFIX/{KEY1:TYPE1}/{KEY2:TYPE2}/...

Setelah membuat file definisi tabel, gunakan perintah bq mk untuk membuat tabel BigLake:

bq mk --external_table_definition=DEFINITION_FILE \
DATASET_NAME.TABLE_NAME \
SCHEMA

Ganti kode berikut:

  • DEFINITION_FILE: jalur ke file definisi tabel.
  • DATASET_NAME: nama set data yang berisi tabel.
  • TABLE_NAME: nama tabel yang Anda buat.
  • SCHEMA: menentukan jalur ke file skema JSON, atau menentukan skema dalam formulir field:data_type,field:data_type,.... Untuk menggunakan deteksi otomatis skema, hilangkan argumen ini.

Contoh

Contoh berikut menggunakan mode partisi Hive AUTO untuk data Amazon S3:

bq mkdef --source_format=CSV \
  --connection_id=us.my-connection \
  --hive_partitioning_mode=AUTO \
  --hive_partitioning_source_uri_prefix=s3://mybucket/myTable \
  --metadata_cache_mode=AUTOMATIC \
  s3://mybucket/* > mytable_def

bq mk --external_table_definition=mytable_def \
  mydataset.mytable \
  Region:STRING,Quarter:STRING,Total_sales:INTEGER

Contoh berikut menggunakan mode partisi Hive STRING untuk data Amazon S3:

bq mkdef --source_format=CSV \
  --connection_id=us.my-connection \
  --hive_partitioning_mode=STRING \
  --hive_partitioning_source_uri_prefix=s3://mybucket/myTable \
  s3://mybucket/myTable/* > mytable_def

bq mk --external_table_definition=mytable_def \
  mydataset.mytable \
  Region:STRING,Quarter:STRING,Total_sales:INTEGER

Contoh berikut menggunakan mode partisi Hive CUSTOM untuk data Blob Storage:

bq mkdef --source_format=CSV \
  --connection_id=us.my-connection \
  --hive_partitioning_mode=CUSTOM \
  --hive_partitioning_source_uri_prefix=azure://mystorageaccount.blob.core.windows.net/mycontainer/{dt:DATE}/{val:STRING} \
  azure://mystorageaccount.blob.core.windows.net/mycontainer/* > mytable_def

bq mk --external_table_definition=mytable_def \
  mydataset.mytable \
  Region:STRING,Quarter:STRING,Total_sales:INTEGER

API

Untuk menetapkan partisi Hive menggunakan BigQuery API, sertakan objek hivePartitioningOptions dalam objek ExternalDataConfiguration saat Anda membuat file definisi tabel. Untuk membuat tabel BigLake, Anda juga harus menentukan nilai untuk kolom connectionId.

Jika menetapkan kolom hivePartitioningOptions.mode ke CUSTOM, Anda harus mengenkode skema kunci partisi di kolom hivePartitioningOptions.sourceUriPrefix sebagai berikut: s3://BUCKET/PATH_TO_TABLE/{KEY1:TYPE1}/{KEY2:TYPE2}/...

Untuk menerapkan penggunaan filter predikat pada waktu kueri, tetapkan kolom hivePartitioningOptions.requirePartitionFilter ke true.

Tabel Delta Lake

Delta Lake adalah format tabel open source yang mendukung tabel data berskala petabyte. Tabel Delta Lake dapat dikueri sebagai tabel sementara dan permanen, dan didukung sebagai tabel BigLake.

Sinkronisasi skema

Delta Lake mempertahankan skema kanonis sebagai bagian dari metadatanya. Anda tidak dapat mengupdate skema menggunakan file metadata JSON. Untuk memperbarui skema:

  1. Gunakan perintah bq update dengan flag --autodetect_schema:

    bq update --autodetect_schema
    PROJECT_ID:DATASET.TABLE
    

    Ganti kode berikut:

    • PROJECT_ID: project ID yang berisi tabel yang ingin Anda update

    • DATASET: set data yang berisi tabel yang ingin Anda update

    • TABLE: tabel yang ingin Anda update

Konversi jenis

BigQuery mengonversi jenis data Delta Lake ke jenis data BigQuery berikut:

Jenis Delta Lake Jenis BigQuery
boolean BOOL
byte INT64
int INT64
long INT64
float FLOAT64
double FLOAT64
Decimal(P/S) NUMERIC atau BIG_NUMERIC bergantung pada presisi
date DATE
time TIME
timestamp (not partition column) TIMESTAMP
timestamp (partition column) DATETIME
string STRING
binary BYTES
array<Type> ARRAY<Type>
struct STRUCT
map<KeyType, ValueType> ARRAY<Struct<key KeyType, value ValueType>>

Batasan

Batasan berikut berlaku untuk tabel Delta Lake:

  • Batasan tabel eksternal berlaku untuk tabel Delta Lake.

  • Tabel Delta Lake hanya didukung di BigQuery Omni dan memiliki batasan terkait.

  • Anda tidak dapat memperbarui tabel dengan file metadata JSON baru. Anda harus menggunakan operasi update tabel skema yang mendeteksi secara otomatis. Lihat Sinkronisasi skema untuk mengetahui informasi selengkapnya.

  • Fitur keamanan BigLake hanya melindungi tabel Delta Lake saat diakses melalui layanan BigQuery.

Membuat tabel Delta Lake

Contoh berikut membuat tabel eksternal menggunakan pernyataan CREATE EXTERNAL TABLE dengan format Delta Lake:

CREATE [OR REPLACE] EXTERNAL TABLE table_name
WITH CONNECTION connection_name
OPTIONS (
         format = 'DELTA_LAKE',
         uris = ["parent_directory"]
       );

Ganti kode berikut:

  • table_name: Nama tabel.

  • connection_name: Nama koneksi. Koneksi harus mengidentifikasi sumber Amazon S3 atau Blob Storage.

  • parent_directory: URI direktori induk.

Transfer lintas cloud dengan Delta Lake

Contoh berikut menggunakan pernyataan LOAD DATA untuk memuat data ke tabel yang sesuai:

LOAD DATA [INTO | OVERWRITE] table_name
FROM FILES (
        format = 'DELTA_LAKE',
        uris = ["parent_directory"]
)
WITH CONNECTION connection_name;

Untuk contoh transfer data lintas cloud lainnya, lihat Memuat data dengan operasi lintas cloud.

Membuat kueri tabel BigLake

Untuk informasi selengkapnya, lihat Membuat kueri data Blob Storage.

Melihat metadata resource dengan INFORMATION_SCHEMA

Anda dapat melihat metadata resource dengan tampilan INFORMATION_SCHEMA. Saat membuat kueri tampilan JOBS_BY_*, JOBS_TIMELINE_BY_*, dan RESERVATION*, Anda harus menentukan lokasi pemrosesan kueri yang sama dengan region tabel. Untuk informasi tentang lokasi BigQuery Omni, lihat Lokasi. Untuk semua tabel sistem lainnya, penetapan lokasi tugas kueri bersifat opsional.

Untuk mengetahui informasi tentang tabel sistem yang didukung BigQuery Omni, lihat Batasan.

Untuk membuat kueri tabel sistem JOBS_* dan RESERVATION*, pilih salah satu metode berikut untuk menentukan lokasi pemrosesan:

Konsol

  1. Buka halaman BigQuery.

    Buka BigQuery

  2. Jika tab Editor tidak terlihat, klik Buat kueri baru.

  3. Klik Lainnya > setelan Kueri. Dialog Query settings akan terbuka.

  4. Dalam dialog Setelan kueri, untuk Setelan tambahan > Lokasi data, pilih BigQuery region yang terhubung dengan region BigQuery Omni. Misalnya, jika region BigQuery Omni Anda adalah aws-us-east-1, tentukan us-east4.

  5. Pilih kolom lainnya, lalu klik Simpan.

bq

Gunakan flag --location untuk menetapkan lokasi pemrosesan tugas ke region BigQuery yang sama dengan region BigQuery Omni. Misalnya, jika region BigQuery Omni Anda adalah aws-us-east-1, tentukan us-east4.

Contoh

bq query --use_legacy_sql=false --location=us-east4 \
"SELECT * FROM region-azure-eastus2.INFORMATION_SCHEMA.JOBS limit 10;"

API

Jika Anda menjalankan tugas secara terprogram, tetapkan argumen lokasi ke region BigQuery yang sama dengan region BigQuery Omni. Misalnya, jika region BigQuery Omni Anda adalah aws-us-east-1, tentukan us-east4.

Kontrol Layanan VPC

Anda dapat menggunakan perimeter Kontrol Layanan VPC untuk membatasi akses dari BigQuery Omni ke layanan cloud eksternal sebagai lapisan pertahanan tambahan. Misalnya, perimeter Kontrol Layanan VPC dapat membatasi ekspor dari tabel BigQuery Omni ke bucket Amazon S3 atau penampung Blob Storage tertentu.

Untuk mempelajari lebih lanjut tentang Kontrol Layanan VPC, baca Ringkasan Kontrol Layanan VPC.

Izin yang diperlukan

Pastikan Anda memiliki izin yang diperlukan untuk mengonfigurasi perimeter layanan. Untuk melihat daftar peran IAM yang diperlukan untuk mengonfigurasi Kontrol Layanan VPC, lihat Kontrol akses dengan IAM dalam dokumentasi Kontrol Layanan VPC.

Menyiapkan Kontrol Layanan VPC menggunakan konsol Google Cloud

  1. Di menu navigasi konsol Google Cloud, klik Keamanan, lalu klik Kontrol Layanan VPC.

    Buka Kontrol Layanan VPC

  2. Guna menyiapkan Kontrol Layanan VPC untuk BigQuery Omni, ikuti langkah-langkah dalam panduan Membuat perimeter layanan, dan ketika Anda membuka panel Aturan traffic keluar, ikuti langkah-langkah berikut:

    1. Di panel Aturan traffic keluar, klik Tambahkan aturan.

    2. Di bagian Dari atribut klien API, pilih salah satu opsi dari daftar Identitas.

    3. Pilih Ke atribut resource eksternal.

    4. Untuk menambahkan resource eksternal, klik Tambahkan resource eksternal.

    5. Dalam dialog Tambahkan resource eksternal, untuk Nama resource eksternal, masukkan nama resource yang valid. Contoh:

      • Untuk Amazon Simple Storage Service (Amazon S3): s3://BUCKET_NAME

        Ganti BUCKET_NAME dengan nama bucket Amazon S3 Anda.

      • Untuk Azure Blob Storage: azure://myaccount.blob.core.windows.net/CONTAINER_NAME

        Ganti CONTAINER NAME dengan nama container Blob Storage Anda.

      Untuk mengetahui daftar atribut aturan traffic keluar, lihat Referensi aturan traffic keluar.

    6. Pilih metode yang ingin Anda izinkan di resource eksternal:

      1. Jika Anda ingin mengizinkan semua metode, pilih Semua metode dalam daftar Metode.
      2. Jika ingin mengizinkan metode tertentu, pilih Metode yang dipilih, klik Pilih metode, lalu pilih metode yang ingin Anda izinkan di resource eksternal.
    7. Klik Buat perimeter.

Menyiapkan Kontrol Layanan VPC menggunakan gcloud CLI

Untuk menyiapkan Kontrol Layanan VPC menggunakan gcloud CLI, ikuti langkah-langkah berikut:

  1. Tetapkan kebijakan akses default.
  2. Buat file input kebijakan traffic keluar.
  3. Tambahkan kebijakan traffic keluar.

Menetapkan kebijakan akses default

Kebijakan akses adalah container berskala organisasi untuk tingkat akses dan perimeter layanan. Untuk informasi tentang cara menetapkan kebijakan akses default atau mendapatkan nama kebijakan akses, lihat Mengelola kebijakan akses.

Membuat file input kebijakan traffic keluar

Blok aturan traffic keluar menentukan akses yang diizinkan dari dalam perimeter ke resource di luar perimeter tersebut. Untuk resource eksternal, properti externalResources menentukan jalur resource eksternal yang diizinkan untuk akses dari dalam perimeter Kontrol Layanan VPC Anda.

Aturan traffic keluar dapat dikonfigurasi menggunakan file JSON atau file YAML. Contoh berikut menggunakan format .yaml:

- egressTo:
    operations:
    - serviceName: bigquery.googleapis.com
      methodSelectors:
      - method: "*"
      *OR*
      - permission: "externalResource.read"
    externalResources:
      - EXTERNAL_RESOURCE_PATH
  egressFrom:
    identityType: IDENTITY_TYPE
    *OR*
    identities:
    - serviceAccount:SERVICE_ACCOUNT
  • egressTo: mencantumkan operasi layanan yang diizinkan pada resource Google Cloud dalam project tertentu di luar perimeter.

  • operations: mencantumkan layanan dan tindakan atau metode yang dapat diakses dan diizinkan untuk diakses oleh klien yang memenuhi kondisi blok from.

  • serviceName: tetapkan bigquery.googleapis.com untuk BigQuery Omni.

  • methodSelectors: daftar metode yang dapat diakses oleh klien yang memenuhi kondisi from. Untuk metode dan izin yang dapat dibatasi untuk layanan, lihat Pembatasan metode layanan yang didukung.

  • method : metode layanan yang valid, atau \"*\" untuk mengizinkan semua metode serviceName.

  • permission: izin layanan yang valid, seperti \"*\", externalResource.read, atau externalResource.write. Akses ke resource di luar perimeter diizinkan untuk operasi yang memerlukan izin ini.

  • externalResources: mencantumkan resource eksternal yang dapat diakses oleh klien dalam perimeter. Ganti EXTERNAL_RESOURCE_PATH dengan bucket Amazon S3 yang valid, seperti s3://bucket_name, atau jalur penampung Blob Storage, seperti azure://myaccount.blob.core.windows.net/container_name.

  • egressFrom: mencantumkan operasi layanan yang diizinkan pada resource Google Cloud dalam project tertentu dalam perimeter.

  • identityType atau identities: menentukan jenis identitas yang dapat mengakses resource tertentu di luar perimeter. Ganti IDENTITY_TYPE dengan salah satu nilai valid berikut:

    • ANY_IDENTITY: untuk mengizinkan semua identitas.
    • ANY_USER_ACCOUNT: untuk mengizinkan semua pengguna.
    • ANY_SERVICE_ACCOUNT: untuk mengizinkan semua akun layanan
  • identities: mencantumkan akun layanan yang dapat mengakses resource tertentu di luar perimeter.

  • serviceAccount (opsional): ganti SERVICE_ACCOUNT dengan akun layanan yang dapat mengakses resource tertentu di luar perimeter.

Contoh

Contoh berikut adalah kebijakan yang mengizinkan operasi traffic keluar dari dalam perimeter ke lokasi Amazon S3 s3://mybucket di AWS.

- egressTo:
    operations:
    - serviceName: bigquery.googleapis.com
      methodSelectors:
      - method: "*"
    externalResources:
      - s3://mybucket
      - s3://mybucket2
  egressFrom:
    identityType: ANY_IDENTITY

Contoh berikut mengizinkan operasi traffic keluar ke container Blob Storage:

- egressTo:
    operations:
    - serviceName: bigquery.googleapis.com
      methodSelectors:
      - method: "*"
    externalResources:
      - azure://myaccount.blob.core.windows.net/mycontainer
  egressFrom:
    identityType: ANY_IDENTITY

Untuk informasi selengkapnya tentang kebijakan traffic keluar, lihat Referensi aturan traffic keluar.

Menambahkan kebijakan traffic keluar

Untuk menambahkan kebijakan traffic keluar saat Anda membuat perimeter layanan baru, gunakan perintah gcloud access-context-manager perimeters create. Misalnya, perintah berikut membuat perimeter baru bernama omniPerimeter yang menyertakan project dengan nomor project 12345, membatasi BigQuery API, dan menambahkan kebijakan traffic keluar yang ditentukan dalam file egress.yaml:

gcloud access-context-manager perimeters create omniPerimeter \
    --title="Omni Perimeter" \
    --resources=projects/12345 \
    --restricted-services=bigquery.googleapis.com \
    --egress-policies=egress.yaml

Untuk menambahkan kebijakan traffic keluar ke perimeter layanan yang ada, gunakan perintah gcloud access-context-manager perimeters update. Misalnya, perintah berikut menambahkan kebijakan traffic keluar yang ditentukan dalam file egress.yaml ke perimeter layanan yang ada bernama omniPerimeter:

gcloud access-context-manager perimeters update omniPerimeter
    --set-egress-policies=egress.yaml

Memverifikasi perimeter Anda

Untuk memverifikasi perimeter, gunakan perintah gcloud access-context-manager perimeters describe:

gcloud access-context-manager perimeters describe PERIMETER_NAME

Ganti PERIMETER_NAME dengan nama perimeter.

Misalnya, perintah berikut menjelaskan perimeter omniPerimeter:

gcloud access-context-manager perimeters describe omniPerimeter

Untuk mengetahui informasi selengkapnya, lihat Mengelola perimeter layanan.

Mengizinkan akses VPC BigQuery Omni ke Blob Storage

Untuk meminta masukan atau dukungan terkait fitur ini, kirim email ke bq-omni-customer-support@google.com.

Sebagai administrator BigQuery, Anda dapat membuat aturan jaringan untuk memberikan akses BigQuery Omni ke resource Blob Storage Anda. Hal ini memastikan bahwa hanya VPC BigQuery Omni yang diotorisasi yang dapat berinteraksi dengan Blob Storage Anda, sehingga meningkatkan keamanan data Anda.

Menerapkan aturan jaringan untuk VPC BigQuery Omni

Untuk menerapkan aturan jaringan, gunakan Azure PowerShell atau Terraform:

Azure PowerShell

Jalankan perintah berikut untuk menambahkan aturan jaringan ke akun penyimpanan Anda yang menentukan ID subnet BigQuery Omni yang diambil sebagai VirtualNetworkResourceId.

  Add-AzStorageAccountNetworkRule`
   -ResourceGroupName "RESOURCE_GROUP_NAME"`
   -Name "STORAGE_ACCOUNT_NAME"`
   -VirtualNetworkResourceId "SUBNET_ID1","SUBNET_ID2"

Ganti kode berikut:

  • RESOURCE_GROUP_NAME: nama grup resource.
  • STORAGE_ACCOUNT_NAME: nama akun penyimpanan.
  • SUBNET_ID1,SUBNET_ID1: ID subnet. Anda dapat menemukan informasi ini dalam tabel di halaman ini.

Terraform

Tambahkan kode berikut ke file konfigurasi Terraform Anda:

  resource "azurerm_storage_account_network_rules" "example" {
    storage_account_name       = "STORAGE_ACCOUNT_NAME"
    resource_group_name        = "RESOURCE_GROUP_NAME"
    default_action             = "Allow"
    bypass                     = ["Logging", "Metrics", "AzureServices"]
    virtual_network_subnet_ids = ["SUBNET_ID1","SUBNET_ID2"]
  }

Ganti kode berikut:

  • STORAGE_ACCOUNT_NAME: nama akun penyimpanan.
  • RESOURCE_GROUP_NAME: nama grup resource.
  • SUBNET_ID1,SUBNET_ID1: ID subnet. Anda dapat menemukan informasi ini dalam tabel di halaman ini.

ID Resource VPC BigQuery Omni

Region ID Subnet
azure-eastus2 /subscriptions/95f30708-58d1-48ba-beac-d71870c3b2f5/resourceGroups/bqe-prod-eastus2-resource-group/providers/Microsoft.Network/virtualNetworks/bqe-prod-eastus2-network/subnets/azure-prod-eastus21-yurduaaaaa-private
/subscriptions/95f30708-58d1-48ba-beac-d71870c3b2f5/resourceGroups/bqe-prod-eastus2-resource-group/providers/Microsoft.Network/virtualNetworks/bqe-prod-eastus2-network/subnets/azure-prod-eastus22-yurduaaaab-private

Batasan

Untuk mengetahui daftar lengkap batasan yang berlaku untuk tabel BigLake berdasarkan Amazon S3 dan Blob Storage, lihat Batasan.

Langkah berikutnya