Menghubungkan ke Oracle

Sebagai administrator BigQuery, Anda dapat membuat koneksi untuk mengakses data Oracle. Koneksi ini memungkinkan analis data untuk membuat kueri data di Oracle.

Lingkungan dan versi Oracle yang didukung

Federasi BigQuery mendukung lingkungan deployment Oracle berikut:

  • Oracle Database@Google Cloud
  • Oracle Exadata Database Service
  • Instance Oracle lokal yang terhubung ke Google Cloud melalui Cloud VPN atau Cloud Interconnect

Federasi BigQuery mendukung versi Oracle berikut:

  • Oracle Database 23.x (23ai)
  • Oracle Database 21.x
  • Oracle Database 19.x (19c)

Sebelum memulai

Aktifkan API yang diperlukan, konfigurasi database Oracle Anda, dan berikan peran Identity and Access Management yang memberi pengguna izin yang diperlukan untuk melakukan setiap tugas dalam dokumen ini.

  1. Mengaktifkan BigQuery Connection API.

    Mengaktifkan API

  2. Jika Anda berencana merutekan traffic melalui jaringan pribadi menggunakan lampiran jaringan, aktifkan juga Compute Engine API.

    Mengaktifkan Compute Engine API

  3. Di database Oracle, buat kredensial pengguna khusus untuk BigQuery:

    Ganti kode berikut:

    • USER_NAME: nama pengguna untuk pengguna database.
    • SCHEMA_NAME: skema tabel yang ingin Anda kueri.
    • TABLE_NAME: tabel yang ingin Anda buat kuerinya.
  4. Konfigurasikan konektivitas jaringan ke instance database Oracle Anda dengan melakukan salah satu hal berikut:

    • Jika Anda merutekan traffic melalui jaringan pribadi, buat lampiran jaringan di region yang sama dengan koneksi BigQuery Anda. Peering DNS tidak didukung; hubungkan menggunakan alamat IP atau nama host yang dapat di-resolve dalam jaringan VPC Anda.
    • Jika Anda terhubung melalui internet publik, tambahkan semua rentang alamat IP Google ke aturan firewall database Oracle Anda.

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk terhubung ke Oracle, minta administrator untuk memberi Anda peran IAM berikut:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Menghubungkan BigQuery ke Oracle

Anda dapat menghubungkan BigQuery ke Oracle di konsolGoogle Cloud atau alat command line bq.

Konsol

  1. Di konsol Google Cloud , buka halaman BigQuery.

    Buka BigQuery

  2. Di panel Penjelajah, klik Tambahkan data.

    Halaman Add data akan terbuka.

  3. Di panel Filter By, di bagian Data Source Type, pilih Databases.

    Atau, di kolom Search for data sources, masukkan oracle.

  4. Di bagian Featured data sources, klik Oracle.

  5. Di bagian Access external data in place, klik kartu solusi BigQuery Federation dengan deskripsi Kueri gabungan ke Oracle.

    Panel External data source akan terbuka.

  6. Di panel External data source, konfigurasikan hal berikut:

    • Di kolom Connection ID, masukkan ID koneksi unik (misalnya, oracle_prod_conn).
    • Di bagian Location type, pilih Region, lalu pilih region tempat set data BigQuery Anda berada. Kueri yang menggunakan koneksi ini harus dijalankan dari region ini.
    • (Opsional) Di kolom Friendly name, masukkan nama deskriptif untuk koneksi.
    • (Opsional) Di kolom Description, masukkan deskripsi untuk resource koneksi ini.
    • Di bagian Encryption, pilih Google-managed encryption key, atau pilih Cloud KMS key untuk menggunakan kunci enkripsi yang dikelola pelanggan (CMEK).
    • Di kolom Host:port, masukkan host dan port server database Oracle dalam format HOST:PORT (misalnya, 10.10.1.2:1521 atau db.example.com:2484).
    • Di kolom Username, masukkan pengguna database yang Anda buat di prasyarat.
    • Di kolom Password, masukkan sandi pengguna database.
    • Di kolom Database, masukkan Nama Layanan database Oracle.
    • (Opsional) Di kolom Network attachment, jika Anda menggunakan konektivitas pribadi, masukkan jalur resource lampiran jaringan dalam format projects/PROJECT_ID/regions/NA_REGION/networkAttachments/ATTACHMENT_NAME.
    • Dalam daftar TLS mode, pilih salah satu mode TLS yang didukung (misalnya, Encrypt data, verify CA and host name (recommended)).
    • Dalam daftar Certificate authority (CA), pilih Public CA (Web PKI), atau pilih CA kustom dan tempel sertifikat berformat PEM.
  7. Klik Create connection.

bq

Gunakan perintah bq mk dengan flag --connection:

bq mk --connection \
  --location=LOCATION \
  --project_id=PROJECT_ID \
  --connector_configuration '{
    "connector_id": "oracle",
    "endpoint": {
      "host_port": "HOST_PORT"
    },
    "asset": {
      "database": "DATABASE"
    },
    "authentication": {
      "username_password": {
        "username": "USERNAME",
        "password": {
          "plaintext": "PASSWORD"
        }
      }
    },
    "tls": {
      "mode": "TLS_MODE"
    },
    "network": {
      "private_service_connect": {
        "network_attachment": "projects/PROJECT_ID/regions/NA_REGION/networkAttachments/ATTACHMENT_NAME"
      }
    }
  }' \
  CONNECTION_ID

Ganti kode berikut:

  • LOCATION: region BigQuery (misalnya, us-central1) yang cocok dengan set data yang ingin Anda kueri bersama dengan Oracle. Kueri yang menggunakan koneksi ini harus dijalankan dari region ini.
  • PROJECT_ID: Project ID Google Cloud Anda.
  • HOST_PORT: host dan port server database Oracle Anda dalam format HOST:PORT (misalnya, 10.10.1.2:1521).
  • DATABASE: Nama Layanan database Oracle.
  • USERNAME: pengguna database Oracle.
  • PASSWORD: sandi pengguna database.
  • TLS_MODE: mode enkripsi TLS (ENCRYPT_VERIFY_CA_AND_HOST, ENCRYPT_VERIFY_CA, ENCRYPT_VERIFY_NONE, atau DISABLE). Jika Anda menggunakan sertifikat CA kustom dengan ENCRYPT_VERIFY_CA_AND_HOST atau ENCRYPT_VERIFY_CA, sertakan objek "private_pki": { "trusted_certificates_pem": "CERT_CONTENT" } di bagian "tls".
  • NA_REGION: region tempat lampiran jaringan Anda berada.
  • ATTACHMENT_NAME: nama lampiran jaringan Anda. Jika terhubung melalui IP publik, hapus objek "network".
  • CONNECTION_ID: ID unik untuk koneksi ini.
  • (Opsional) --kms_key_name=KMS_KEY_NAME: kunci enkripsi yang dikelola pelanggan (CMEK). Jika dihilangkan, kredensial akan dilindungi oleh Google-owned and Google-managed encryption keydefault.

Konfigurasi Transport Layer Security (TLS)

Konektor Oracle mendukung Transport Layer Security (TLS) untuk mengenkripsi traffic kueri dalam pengiriman antara BigQuery dan database Oracle Anda.

Saat Anda menghubungkan BigQuery ke Oracle, pilih salah satu mode TLS berikut:

  • Mengenkripsi data, serta memverifikasi Certificate Authority (CA) dan nama host (mode ENCRYPT_VERIFY_CA_AND_HOST). Melakukan validasi server penuh menggunakan TLS. Mengenkripsi semua data dalam pengiriman, memverifikasi bahwa sertifikat server database ditandatangani oleh CA tepercaya, dan memeriksa apakah nama host yang Anda hubungkan cocok dengan Nama Umum (CN) atau Nama Alternatif Subjek (SAN) dalam sertifikat. Wajib untuk koneksi melalui IP publik.

  • Mengenkripsi data, dan hanya memverifikasi CA (mode ENCRYPT_VERIFY_CA). Mengenkripsi semua data dalam pengiriman dan memverifikasi bahwa sertifikat server ditandatangani oleh CA tepercaya, tetapi tidak memverifikasi nama host server. Gunakan mode ini jika sertifikat server ditandatangani oleh CA tepercaya, tetapi Anda terhubung menggunakan alamat IP atau nama host yang tidak cocok dengan CN atau SAN sertifikat.

  • Hanya enkripsi (mode ENCRYPT_VERIFY_NONE). Mengenkripsi semua data yang ditransfer antara BigQuery dan server menggunakan enkripsi jaringan Oracle melalui port TCP standar. Tidak melakukan verifikasi sertifikat atau nama host. Hanya direkomendasikan dalam VPC pribadi.

  • Tidak ada enkripsi atau verifikasi (mode DISABLE). Tidak mengenkripsi data dan tidak melakukan verifikasi sertifikat atau nama host. Hanya diizinkan saat terhubung melalui lampiran jaringan pribadi dalam jaringan VPC yang dilindungi.

Sertifikat server tepercaya dalam format PEM

Jika Anda menggunakan mode ENCRYPT_VERIFY_CA_AND_HOST atau mode ENCRYPT_VERIFY_CA, lakukan hal berikut:

  • Jika sertifikat server database Anda ditandatangani oleh CA publik (seperti yang disertakan dalam Program Root CA Mozilla, termasuk Let's Encrypt, DigiCert, atau Layanan Kepercayaan Google), Anda tidak perlu memberikan sertifikat. Root certificate untuk CA publik dipercaya secara default.
  • Jika Anda menggunakan sertifikat yang ditandatangani oleh CA internal atau pribadi dalam organisasi, atau sertifikat yang ditandatangani sendiri, Anda harus memberikan rantai sertifikat lengkap dalam format Privacy-Enhanced Mail (PEM) di kolom Trusted PEM certificate selama penyiapan koneksi.

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

  1. Buka halaman BigQuery.

    Buka BigQuery

    Koneksi dicantumkan dalam project Anda, dalam grup yang disebut Connections.

  2. Di panel kiri, klik Explorer:

    Tombol yang ditandai untuk panel Explorer.

    Jika Anda tidak melihat panel kiri, klik Luaskan panel kiri untuk membuka panel.

  3. Klik project Anda, klik Connections, lalu pilih koneksi.

  4. Di panel Detail, klik Bagikan untuk membagikan koneksi. Kemudian, lakukan hal berikut:

    1. Dalam dialog Izin koneksi, bagikan koneksi dengan akun utama lain dengan menambahkan atau mengedit akun utama.

    2. 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 mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

import com.google.api.resourcenames.ResourceName;
import com.google.cloud.bigquery.connection.v1.ConnectionName;
import com.google.cloud.bigqueryconnection.v1.ConnectionServiceClient;
import com.google.iam.v1.Binding;
import com.google.iam.v1.Policy;
import com.google.iam.v1.SetIamPolicyRequest;
import java.io.IOException;

// Sample to share connections
public class ShareConnection {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "MY_PROJECT_ID";
    String location = "MY_LOCATION";
    String connectionId = "MY_CONNECTION_ID";
    shareConnection(projectId, location, connectionId);
  }

  static void shareConnection(String projectId, String location, String connectionId)
      throws IOException {
    try (ConnectionServiceClient client = ConnectionServiceClient.create()) {
      ResourceName resource = ConnectionName.of(projectId, location, connectionId);
      Binding binding =
          Binding.newBuilder()
              .addMembers("group:example-analyst-group@google.com")
              .setRole("roles/bigquery.connectionUser")
              .build();
      Policy policy = Policy.newBuilder().addBindings(binding).build();
      SetIamPolicyRequest request =
          SetIamPolicyRequest.newBuilder()
              .setResource(resource.toString())
              .setPolicy(policy)
              .build();
      client.setIamPolicy(request);
      System.out.println("Connection shared successfully");
    }
  }
}

Harga

Kueri dan koneksi gabungan dikenai biaya berikut:

Langkah berikutnya