Menghubungkan ke Apache Spark
Sebagai administrator BigQuery, Anda dapat membuat koneksi agar analis data dapat menjalankan prosedur tersimpan untuk Apache Spark.
Sebelum memulai
Mengaktifkan BigQuery Connection API.
-
Untuk mendapatkan izin yang diperlukan untuk membuat koneksi Spark, minta administrator Anda untuk memberi Anda BigQuery Connection Admin (
roles/bigquery.connectionAdmin
) peran IAM pada project. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
- Opsional: Untuk mengelola metadata menggunakan Dataproc Metastore, pastikan Anda telah membuat layanan Dataproc Metastore.
- Opsional: Untuk melihat histori tugas menggunakan antarmuka web Spark History Server, pastikan Anda telah membuat Dataproc Persistent History Server (PHS).
Pertimbangan lokasi
Saat Anda memilih lokasi untuk data Anda, pertimbangkan hal berikut:
Multi-region
Anda harus menentukan resource Google Cloud yang terletak di area geografis dengan luas yang sama:
Koneksi di multi-region BigQuery AS dapat merujuk ke Spark History Server atau Dataproc Metastore di satu region mana pun di wilayah geografis AS, seperti
us-central1
,us-east4
, atauus-west2
.Koneksi di multi-region EU BigQuery dapat mereferensikan Spark History Server atau Dataproc Metastore di negara bagian anggota Uni Eropa, seperti
europe-north1
ataueurope-west3
.
Satu region
Koneksi di satu region hanya dapat mereferensikan resource Google Cloud
di region yang sama. Misalnya, koneksi dalam satu
region us-east4
hanya dapat mereferensikan Spark History Server atau
Dataproc Metastore di us-east4
.
Membuat koneksi
Pilih salah satu opsi berikut:
Konsol
Buka halaman BigQuery.
Untuk membuat koneksi, klik tambahkan
Tambahkan data, lalu klik Koneksi ke sumber data eksternal.Dalam daftar Jenis koneksi, pilih Apache Spark.
Di kolom ID Koneksi, masukkan nama koneksi Anda—misalnya,
spark_connection
.Di daftar Lokasi data, pilih region.
Anda dapat membuat koneksi di region dan multi-region yang mendukung BigQuery. Untuk informasi selengkapnya, lihat Pertimbangan lokasi.
Opsional: Dari daftar layanan Metastore, pilih Dataproc Metastore.
Opsional: Di kolom History server cluster, masukkan Dataproc Persistent History Server.
Klik Buat koneksi.
Klik Buka koneksi.
Di panel Info koneksi, salin ID akun layanan untuk digunakan pada langkah berikut.
bq
Dalam lingkungan command line, gunakan perintah
bq mk
untuk membuat koneksi:bq mk --connection --connection_type='SPARK' \ --properties=PROPERTIES \ --project_id=PROJECT_ID \ --location=LOCATION CONNECTION_ID
Ganti kode berikut:
PROPERTIES
: pasangan nilai kunci untuk menyediakan parameter khusus koneksi dalam format JSONContoh:
--properties='{ "metastoreServiceConfig": {"metastoreService": "METASTORE_SERVICE_NAME"}, "sparkHistoryServerConfig": {"dataprocCluster": "DATAPROC_CLUSTER_NAME"} }'
Ganti kode berikut:
METASTORE_SERVICE_NAME
: Dataproc Metastore dengan konfigurasi jaringan gRPC—misalnya,projects/my-project-id/locations/us-central1/services/my-service
Untuk mengetahui informasi selengkapnya, lihat cara mengakses metadata metastore Hive yang tersimpan menggunakan protokol endpoint.
DATAPROC_CLUSTER_NAME
: konfigurasi Spark History Server—misalnya,projects/my-project-id/regions/us-central1/clusters/my-cluster
Untuk mengetahui informasi selengkapnya, lihat Membuat cluster Persistent History Server.
PROJECT_ID
: project ID Google Cloud AndaLOCATION
: lokasi tempat Anda ingin menyimpan koneksi—misalnya,US
CONNECTION_ID
: ID koneksi—misalnya,myconnection
Saat Anda melihat detail koneksi di konsol Google Cloud, ID koneksi adalah nilai di bagian terakhir dari ID koneksi yang sepenuhnya memenuhi syarat yang ditampilkan di ID Koneksi—misalnya
projects/.../locations/.../connections/myconnection
Ambil dan salin ID akun layanan karena Anda memerlukannya di langkah lain:
bq show --location=LOCATION --connection PROJECT_ID.LOCATION.CONNECTION_ID
Outputnya mirip dengan yang berikut ini:
Connection myproject.us.myconnection name type properties ---------------------- ------- --------------------------------------------------- myproject.us.myconnection SPARK {"serviceAccountId": "bqserver@example."}
Untuk mengetahui informasi tentang cara mengelola koneksi, lihat Mengelola koneksi.
Memberikan akses ke akun layanan
Agar prosedur tersimpan untuk Apache Spark dapat mengakses resource Google Cloud, Anda perlu memberikan izin IAM yang diperlukan kepada akun layanan yang terkait dengan koneksi prosedur tersimpan. Atau, Anda dapat menggunakan akun layanan kustom untuk akses data.
Untuk membaca dan menulis data dari dan ke BigQuery, Anda harus memberikan izin IAM berikut kepada akun layanan:
bigquery.tables.*
di tabel BigQuery Andabigquery.readsessions.*
di project Anda
Peran IAM
roles/bigquery.admin
mencakup izin yang diperlukan akun layanan untuk membaca dan menulis data dari dan ke BigQuery.Untuk membaca dan menulis data dari dan ke Cloud Storage, Anda harus memberikan izin
storage.objects.*
kepada akun layanan di objek Cloud Storage.Peran IAM
roles/storage.objectAdmin
mencakup izin yang diperlukan akun layanan untuk membaca dan menulis data dari dan ke Cloud Storage.Jika Anda menentukan Dataproc Metastore saat membuat koneksi, maka agar BigQuery dapat mengambil detail tentang konfigurasi metastore, Anda harus memberikan izin
metastore.services.get
kepada akun layanan di Dataproc Metastore Anda.Peran
roles/metastore.metadataViewer
bawaan mencakup izin yang diperlukan akun layanan untuk mengambil detail tentang konfigurasi metastore.Anda juga perlu memberikan peran
roles/storage.objectAdmin
pada akun layanan di bucket Cloud Storage agar prosedur yang Anda simpan dapat mengakses direktori warehouse Hive di Dataproc Metastore (hive.metastore.warehouse.dir
). Jika prosedur tersimpan menjalankan operasi di metastore, Anda mungkin perlu memberikan izin tambahan. Untuk mengetahui informasi selengkapnya tentang peran dan izin IAM di Dataproc Metastore, lihat Peran dan izin yang telah ditetapkan di Dataproc Metastore.Jika Anda menentukan Dataproc Persistent History Server saat membuat koneksi, Anda perlu memberikan peran berikut ke akun layanan:
- Peran
roles/dataproc.viewer
di Dataproc Persistent History Server Anda yang berisi izindataproc.clusters.get
. - Peran
roles/storage.objectAdmin
pada bucket Cloud Storage yang Anda tentukan untukspark:spark.history.fs.logDirectory
properti saat membuat Dataproc Persistent History Server.
Untuk mengetahui informasi selengkapnya, lihat Dataproc Persistent History Server serta Peran dan izin Dataproc.
- Peran
Berbagi koneksi dengan pengguna
Anda dapat memberikan peran berikut untuk mengizinkan pengguna membuat kueri data dan mengelola koneksi:
roles/bigquery.connectionUser
: memungkinkan pengguna menggunakan koneksi untuk terhubung dengan sumber data eksternal dan menjalankan kueri pada sumber data tersebut.roles/bigquery.connectionAdmin
: memungkinkan pengguna mengelola koneksi.
Untuk informasi selengkapnya tentang peran dan izin IAM di BigQuery, baca Peran dan izin bawaan.
Pilih salah satu opsi berikut:
Konsol
Buka halaman BigQuery.
Koneksi dicantumkan dalam project Anda, dalam grup yang disebut Koneksi eksternal.
Di panel Penjelajah, klik nama project Anda > Koneksi eksternal > koneksi.
Di panel Detail, klik Bagikan untuk membagikan koneksi. Kemudian, lakukan hal berikut:
Dalam dialog Izin koneksi, bagikan koneksi dengan akun utama lain dengan menambahkan atau mengedit akun utama.
Klik Simpan.
bq
Anda tidak dapat berbagi koneksi dengan alat command line bq. Untuk berbagi koneksi, gunakan konsol Google Cloud atau metode BigQuery Connections API untuk melakukannya.
API
Gunakan
metode projects.locations.connections.setIAM
di bagian referensi REST API Koneksi BigQuery, dan
berikan instance resource policy
.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Langkah selanjutnya
- Pelajari berbagai jenis koneksi.
- Pelajari cara mengelola koneksi.
- Pelajari cara membuat prosedur tersimpan untuk Apache Spark.
- Pelajari cara mengelola prosedur tersimpan.