Menghubungkan ke SAP Datasphere

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

Sebelum memulai

  1. Mengaktifkan BigQuery Connection API.

    Mengaktifkan API

  2. Buat pengguna database SAP Datasphere. Catat nama pengguna, sandi, nama host, dan port untuk BigQuery agar dapat terhubung.

  3. Konfigurasi tenant SAP Datasphere Anda untuk menerima traffic dari alamat IP yang Anda pilih dengan melakukan salah satu hal berikut:

    • Tambahkan semua rentang alamat IP Google ke daftar yang diizinkan "IP Tepercaya" di SAP Datasphere.
    • Buka tenant SAP Datasphere untuk koneksi dari semua alamat IP dengan menambahkan 0.0.0.0/0 ke daftar yang diizinkan.
    • Konfigurasi koneksi Anda dengan lampiran jaringan agar BigQuery membuka koneksi dari alamat IP statis.

    Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi tenant SAP Datasphere, lihat Menambahkan alamat IP ke Daftar yang Diizinkan IP.

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk terhubung ke SAP Datasphere, 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.

Mengonfigurasi network attachment

Karena kueri gabungan membuat koneksi langsung ke database Anda menggunakan BigQuery Connection API, Anda harus mengizinkan traffic dari Google Cloud ke mesin database Anda. Untuk meningkatkan keamanan, Anda hanya boleh mengizinkan traffic yang berasal dari kueri BigQuery Anda. Pembatasan traffic ini dapat dilakukan dengan salah satu dari dua cara berikut:

  • Dengan menentukan alamat IP statis yang digunakan oleh koneksi BigQuery dan menambahkannya ke aturan firewall sumber data eksternal.
  • Dengan membuat VPN antara BigQuery dan infrastruktur internal Anda, lalu menggunakannya untuk kueri Anda.

Kedua teknik ini didukung melalui penggunaan lampiran jaringan.

Batasan

Koneksi dengan lampiran jaringan tunduk pada batasan berikut:

  • Untuk region standar, lampiran jaringan harus berada di region yang sama dengan koneksi. Untuk koneksi di multi-region US, lampiran jaringan harus berada di region us-central1. Untuk koneksi di multi-region EU, lampiran jaringan harus berada di region europe-west4.
  • Anda tidak dapat mengedit lampiran jaringan setelah membuatnya. Untuk mengubah konfigurasi, Anda harus membuat ulang network attachment.
  • Lampiran jaringan tidak dapat dihapus kecuali jika BigQuery menghapus resource yang dialokasikan. Untuk memulai proses penghapusan, hubungi dukungan BigQuery.

Membuat network attachment

Saat membuat koneksi untuk federasi kueri, Anda dapat menentukan lampiran jaringan opsional yang menyediakan konektivitas ke jaringan database Anda. Anda dapat membuat network attachment dengan menentukan alamat IP statis atau membuat VPN. Untuk kedua opsi tersebut, lakukan hal berikut:

  1. Jika Anda belum memilikinya, buat jaringan dan subnet VPC.

  2. Bergantung pada metode pemilihan rute yang Anda pilih, lakukan salah satu hal berikut:

  3. Buat lampiran jaringan menggunakan jaringan, region, dan subnet yang Anda buat.

  4. Opsional: Bergantung pada kebijakan keamanan organisasi Anda, Anda mungkin perlu mengonfigurasi Google Cloud firewall untuk mengizinkan traffic keluar dengan membuat aturan firewall dengan setelan berikut:

    • Tetapkan Targets ke All instances in the network.
    • Setel Destination IPv4 ranges ke seluruh rentang alamat IP.
    • Tetapkan Specified protocols and ports ke port yang digunakan oleh database Anda.
  5. Konfigurasi firewall internal Anda untuk mengizinkan ingress dari alamat IP statis yang Anda buat. Proses ini bervariasi menurut sumber data.

Menghubungkan BigQuery ke SAP Datasphere

Anda dapat menghubungkan BigQuery ke SAP Datasphere di konsol Google Cloud atau alat command line bq.

Konsol

  1. Di konsol Google Cloud , buka halaman BigQuery.

    Buka BigQuery

  2. Di panel Penjelajah, klik Tambahkan data.

    Dialog Add data akan terbuka.

  3. Di panel Filter Menurut, di bagian Jenis Sumber Data, pilih Database.

    Atau, di kolom Telusuri sumber data, Anda dapat memasukkan SAP HANA.

  4. Di bagian Sumber data unggulan, klik SAP HANA.

  5. Klik kartu solusi SAP HANA: BigQuery Federation.

  6. Di dialog Sumber data eksternal, lakukan hal berikut:

    • Untuk Connection type, pilih SAP HANA.
    • Untuk Connection ID, masukkan ID koneksi untuk mengidentifikasi koneksi ini.
    • Untuk Location type, tentukan region set data BigQuery yang akan digabungkan dengan data dari SAP Datasphere. Kueri yang menggunakan koneksi ini harus dijalankan dari region ini.
    • Opsional: Untuk Friendly name, masukkan nama yang mudah digunakan untuk koneksi, seperti My connection resource. Nama yang cocok dapat berupa nilai apa pun yang membantu Anda mengidentifikasi resource koneksi jika perlu mengubahnya nanti.
    • Opsional: Untuk Description, masukkan deskripsi untuk resource koneksi ini.
    • Untuk Encryption, pilih Google-managed encryption key atau Customer-managed encryption key (CMEK). Penggunaan CMEK bersifat opsional.
    • Untuk Host:port: masukkan host dan port instance database SAP, seperti yang ditunjukkan di Database User Details di konsol web SAP Datasphere, dalam format HOST:PORT.
    • Opsional: Untuk Network attachment, masukkan jalur ke network attachment yang menentukan konfigurasi jaringan yang digunakan untuk membuat koneksi ke SAP Datasphere.
    • Untuk Username: masukkan nama pengguna database dari Database User Details di konsol web SAP Datasphere. Misalnya, MY_SPACE#BIGQUERY.
    • Untuk Sandi: masukkan sandi pengguna database.
  7. Klik Create connection.

bq

Masukkan perintah bq mk dengan flag berikut:

  bq mk \
  --connection \
  --location=LOCATION \
  --project_id=PROJECT_ID \
  --connector_configuration '{
    "connector_id": "saphana",
    "endpoint": {
      "host_port": "HOST_PORT"
    },
    "authentication": {
      "username_password": {
        "username": "USERNAME",
        "password": {
          "plaintext": "PASSWORD"
        }
      }
    },
    "network": {
      "private_service_connect": {
        "network_attachment": "NETWORK_ATTACHMENT"
      }
    }
  }' \
  CONNECTION_ID

Ganti kode berikut:

  • LOCATION: tentukan region set data BigQuery yang akan digabungkan dengan data dari SAP Datasphere. Kueri yang menggunakan koneksi ini harus dijalankan dari region ini.
  • PROJECT_ID: masukkan Google Cloud project ID Anda.
  • HOST_PORT: masukkan host dan port instance database SAP, seperti yang ditunjukkan di Detail Pengguna Database di konsol web SAP Datasphere, dalam format HOST:PORT.
  • NETWORK_ATTACHMENT (opsional): masukkan lampiran jaringan dalam format projects/{project}/regions/{region}/networkAttachments/{networkattachment}. Dengan kolom ini, Anda dapat mengonfigurasi koneksi SAP Datasphere sehingga BigQuery membuka koneksi dari alamat IP statis.
  • USERNAME: masukkan nama pengguna database dari Database User Details di konsol web SAP Datasphere. Contohnya, MY_SPACE#BIGQUERY.
  • PASSWORD: masukkan sandi pengguna database.
  • CONNECTION_ID: masukkan ID koneksi untuk mengidentifikasi koneksi ini.

Flag opsional:

  • --kms_key_name: Kunci enkripsi yang dikelola pelanggan. Jika tidak disertakan, kredensial akan dilindungi oleh Google-owned and Google-managed encryption keydefault.

Catatan: Jika Anda mengonfigurasi koneksi untuk menggunakan network attachment, Anda harus menjalankan kueri gabungan awal untuk menyinkronkan project dengan network attachment sebelum menjadi aktif sepenuhnya.

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 Koneksi.

  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

Langkah berikutnya