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
Buka halaman BigQuery.
- Di panel Explorer, pilih project tempat Anda ingin membuat set data.
- Perluas opsi Tampilkan tindakan, lalu klik Buat set data.
- Di halaman Buat set data, tentukan detail berikut:
- Untuk ID Set Data, masukkan nama set data yang unik.
- Untuk Lokasi data, pilih region yang didukung.
- 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.
- Jika Anda ingin menggunakan kolasi default, luaskan bagian Advanced options lalu pilih opsi Enable default collation.
- Klik Buat set data.
SQL
Gunakan pernyataan DDL CREATE SCHEMA
.
Contoh berikut membuat set data di region azure-eastus2
:
Di Konsol Google Cloud, buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
CREATE SCHEMA mydataset OPTIONS ( location = 'azure-eastus2');
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 AndaUntuk 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 AndaDATASET_NAME
: nama set data yang ingin Anda buatUntuk 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
Buka halaman BigQuery.
Di panel Explorer, luaskan project Anda, lalu pilih set data.
Di bagian Info set data, klik
Buat tabel.Di halaman Create table, di bagian Source, lakukan hal berikut:
- Untuk Create table from, pilih Azure Blob Storage.
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 berupamyfile.csv
.
Untuk File format, pilih format data di Azure. Format yang didukung adalah AVRO, CSV, DELTA_LAKE, ICEBERG, JSONL, ORC, dan PARQUET.
Di bagian Destination, lakukan tindakan berikut:
- Untuk Dataset, pilih set data yang sesuai.
- Di kolom Tabel, masukkan nama tabel.
- Pastikan Jenis tabel ditetapkan ke Tabel eksternal.
- Untuk Connection ID, pilih ID koneksi yang sesuai dari menu drop-down. Untuk informasi tentang koneksi, lihat Menghubungkan ke Blob Storage.
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.
Klik Create table.
SQL
Untuk membuat tabel BigLake, gunakan pernyataan CREATE EXTERNAL TABLE
dengan klausa WITH CONNECTION
:
Di konsol Google Cloud, buka halaman BigQuery.
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 buatTABLE_NAME
: nama yang ingin Anda berikan ke tabel iniAZURE_LOCATION
: lokasi Azure di Google Cloud, sepertiazure-eastus2
CONNECTION_NAME
: nama koneksi yang Anda buatDATA_FORMAT
: salah satu format gabungan BigQuery yang didukung, sepertiAVRO
,CSV
,DELTA_LAKE
, atauICEBERG
(pratinjau)AZURE_STORAGE_ACCOUNT_NAME
: nama akun Blob StorageCONTAINER_NAME
: nama penampung Blob StorageFILE_PATH
: jalur data yang mengarah ke data Blob Storage
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, sepertiAVRO
,CSV
,ICEBERG
, atauPARQUET
AZURE_LOCATION
: lokasi Azure di Google Cloud, sepertiazure-eastus2
CONNECTION_NAME
: nama koneksi yang Anda buatAZURE_STORAGE_ACCOUNT_NAME
: nama akun Blob StorageCONTAINER_NAME
: nama penampung Blob StorageFILE_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 buatTABLE_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
Buka halaman BigQuery.
Di panel Penjelajah, luaskan project Anda dan pilih set data.
Klik
Tampilkan tindakan, lalu klik Buat tabel. Tindakan ini akan membuka panel Buat tabel.Di bagian Source, tentukan detail berikut:
Untuk Create table from, pilih salah satu opsi berikut:
- Amazon S3
- Azure Blob Storage
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.
- Untuk Amazon S3:
Dari daftar Format file, pilih jenis file.
Pilih kotak centang Partisi data sumber, lalu tentukan detail berikut:
- Untuk Pilih Awalan URI Sumber, masukkan
awalan URI. Contoh,
s3://mybucket/my_files
. - 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.
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.
- Otomatis menyimpulkan jenis: tetapkan mode deteksi skema
partisi ke
- Untuk Pilih Awalan URI Sumber, masukkan
awalan URI. Contoh,
Di bagian Tujuan, tentukan detail berikut:
- Untuk Project, pilih project tempat Anda ingin membuat tabel.
- Untuk Set data, pilih set data tempat Anda ingin membuat tabel.
- Untuk Tabel, masukkan nama tabel yang ingin Anda buat.
- Untuk jenis Tabel, pastikan memilih Tabel eksternal.
- Untuk Connection ID, pilih koneksi yang Anda buat sebelumnya.
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.
Untuk mengabaikan baris dengan nilai kolom tambahan yang tidak cocok dengan skema, luaskan bagian Opsi lanjutan dan pilih Nilai tidak dikenal.
Klik Buat tabel.
SQL
Gunakan
pernyataan DDL CREATE EXTERNAL TABLE
:
Di konsol Google Cloud, buka halaman BigQuery.
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 partisiPARTITION_COLUMN_TYPE
: jenis kolom partisiREGION
: 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
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 adalahfalse
.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 formulirfield: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:
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 updateDATASET
: set data yang berisi tabel yang ingin Anda updateTABLE
: 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
Buka halaman BigQuery.
Jika tab Editor tidak terlihat, klik
Buat kueri baru.Klik Lainnya > setelan Kueri. Dialog Query settings akan terbuka.
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
, tentukanus-east4
.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
Di menu navigasi konsol Google Cloud, klik Keamanan, lalu klik Kontrol Layanan VPC.
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:
Di panel Aturan traffic keluar, klik Tambahkan aturan.
Di bagian Dari atribut klien API, pilih salah satu opsi dari daftar Identitas.
Pilih Ke atribut resource eksternal.
Untuk menambahkan resource eksternal, klik Tambahkan resource eksternal.
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.
Pilih metode yang ingin Anda izinkan di resource eksternal:
- Jika Anda ingin mengizinkan semua metode, pilih Semua metode dalam daftar Metode.
- Jika ingin mengizinkan metode tertentu, pilih Metode yang dipilih, klik Pilih metode, lalu pilih metode yang ingin Anda izinkan di resource eksternal.
Klik Buat perimeter.
Menyiapkan Kontrol Layanan VPC menggunakan gcloud CLI
Untuk menyiapkan Kontrol Layanan VPC menggunakan gcloud CLI, ikuti langkah-langkah berikut:
- Tetapkan kebijakan akses default.
- Buat file input kebijakan traffic keluar.
- 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 blokfrom
.serviceName
: tetapkanbigquery.googleapis.com
untuk BigQuery Omni.methodSelectors
: daftar metode yang dapat diakses oleh klien yang memenuhi kondisifrom
. Untuk metode dan izin yang dapat dibatasi untuk layanan, lihat Pembatasan metode layanan yang didukung.method
: metode layanan yang valid, atau\"*\"
untuk mengizinkan semua metodeserviceName
.permission
: izin layanan yang valid, seperti\"*\"
,externalResource.read
, atauexternalResource.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, sepertis3://bucket_name
, atau jalur penampung Blob Storage, sepertiazure://myaccount.blob.core.windows.net/container_name
.egressFrom
: mencantumkan operasi layanan yang diizinkan pada resource Google Cloud dalam project tertentu dalam perimeter.identityType
atauidentities
: 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
- Pelajari BigQuery Omni.
- Pelajari tabel BigLake.
- Pelajari cara mengekspor hasil kueri ke Blob Storage.