Menghubungkan ke SAP Datasphere

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

Sebelum memulai

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk terhubung ke SAP Datasphere, minta administrator Anda untuk memberi Anda peran IAM BigQuery Connection Admin (roles/bigquery.connectionAdmin) pada project tersebut. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.

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

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 add Add.

  3. Di kolom penelusuran, telusuri dan pilih Koneksi ke sumber data eksternal.

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

    • Untuk Connection type, pilih SAP HANA.
    • Untuk ID Koneksi, masukkan ID koneksi untuk mengidentifikasi koneksi ini.
    • Untuk Location type, tentukan region dari 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 Enkripsi, pilih Kunci enkripsi yang dikelola Google atau Kunci enkripsi yang dikelola pelanggan (CMEK). Penggunaan CMEK bersifat opsional.
    • Untuk Host:port: masukkan host dan port instance database SAP, seperti yang ditunjukkan pada Database User Details di konsol web SAP Datasphere, dalam format HOST:PORT.
    • Untuk Username: masukkan nama pengguna database dari Database User Details di konsol web SAP Datasphere. Misalnya, MY_SPACE#BIGQUERY.
    • Untuk Password: masukkan sandi pengguna database.
  5. Klik Buat koneksi.

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"
        }
      }
    }
  }' \
  CONNECTION_ID

Ganti kode berikut:

  • LOCATION: menentukan region dari set data BigQuery yang akan digabungkan dengan data dari SAP Datasphere. Kueri yang menggunakan koneksi ini harus dijalankan dari region ini.
  • PROJECT_ID: masukkan ID project Google Cloud Anda.
  • HOST_PORT: masukkan host dan port instance database SAP, seperti yang ditunjukkan pada Database User Details di konsol web Datasphere SAP, dalam format HOST:PORT.
  • USERNAME: masukkan nama pengguna database dari Database User Details di konsol web SAP Datasphere. Contohnya, MY_SPACE#BIGQUERY.
  • PASSWORD: memasukkan sandi pengguna database.
  • CONNECTION_ID: masukkan ID koneksi untuk mengidentifikasi koneksi ini.

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

  2. Di panel Penjelajah, klik nama project Anda > Koneksi eksternal > koneksi.

  3. 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 Save.

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");
    }
  }
}

Langkah selanjutnya