Menggunakan penetapan pemesanan

BigQuery Reservasi API memungkinkan Anda membeli slot khusus (disebut komitmen), membuat kumpulan slot (disebut reservasi), dan menetapkan project, folder, dan organisasi ke reservasi tersebut.

Membuat penetapan pemesanan

Untuk menggunakan slot yang dibeli, Anda perlu membuat penetapan yang menetapkan project, folder, atau organisasi ke pemesanan slot.

Project menggunakan satu pemesanan paling spesifik dalam hierarki resource yang ditetapkan. Penetapan folder menggantikan penetapan organisasi, dan penetapan project menggantikan penetapan folder. Penetapan folder dan organisasi tidak tersedia untuk reservasi edisi standar.

Untuk membuat penetapan pada reservasi, reservasi harus memenuhi setidaknya salah satu kriteria berikut:

  • Konfigurasi slot ini dikonfigurasi dengan jumlah slot dasar yang ditetapkan, bukan nol.

  • Kolom ini dikonfigurasi dengan jumlah slot penskalaan otomatis selain nol.

  • Konfigurasi ini dikonfigurasi untuk menggunakan slot yang tidak ada aktivitas, dan terdapat slot yang tidak ada aktivitas dalam project tersebut.

Jika Anda mencoba menetapkan resource ke reservasi yang tidak memenuhi setidaknya salah satu kriteria ini, Anda akan menerima pesan berikut: Assignment is pending, your project will be executed as on-demand.

Izin yang diperlukan

Untuk membuat penetapan pemesanan, Anda memerlukan izin Identity and Access Management (IAM) berikut:

Setiap peran IAM yang telah ditetapkan berikut mencakup izin ini:

  • BigQuery Admin
  • BigQuery Resource Admin
  • BigQuery Resource Editor

Untuk mengetahui informasi lebih lanjut tentang peran IAM di BigQuery, lihat Peran dan izin yang telah ditetapkan.

Menetapkan organisasi ke pemesanan

Konsol

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di panel navigasi, buka bagian Pengelolaan Kapasitas.

  3. Klik tab Reservations.

  4. Temukan pemesanan di tabel pemesanan

  5. Perluas opsi Actions.

  6. Klik Create assignment.

  7. Di bagian Create an assignment, klik Browse.

  8. Jelajahi atau telusuri organisasi, lalu pilih organisasi tersebut.

  9. Di bagian Job Type, pilih jenis tugas yang akan ditetapkan untuk pemesanan ini. Opsinya meliputi:

    • QUERY
    • PIPELINE
    • BACKGROUND
    • ML_EXTERNAL

    Untuk informasi selengkapnya tentang jenis tugas, lihat penetapan pemesanan. Nilai default ini adalah QUERY.

  10. Klik Create.

SQL

Untuk menetapkan organisasi ke pemesanan, gunakan pernyataan DDL CREATE ASSIGNMENT.

  1. Di Konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

    CREATE ASSIGNMENT
      `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID`
    OPTIONS (
      assignee = 'organizations/ORGANIZATION_ID',
      job_type = 'JOB_TYPE');
    

    Ganti kode berikut:

    • ADMIN_PROJECT_ID: project ID dari project administrasi yang memiliki resource pemesanan
    • LOCATION: lokasi pemesanan
    • RESERVATION_NAME: nama pemesanan
    • ASSIGNMENT_ID: ID tugas

      ID harus unik untuk project dan lokasi, diawali dan diakhiri dengan huruf kecil atau angka, serta hanya berisi huruf kecil, angka, dan tanda hubung.

    • ORGANIZATION_ID: ID organisasi
    • JOB_TYPE: jenis tugas yang akan ditetapkan ke pemesanan ini, seperti QUERY, PIPELINE, BACKGROUND, atau ML_EXTERNAL

  3. Klik Run.

Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.

bq

Untuk menetapkan tugas organisasi ke pemesanan, gunakan perintah bq mk dengan flag --reservation_assignment:

bq mk \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment \
    --reservation_id=RESERVATION_NAME \
    --assignee_id=ORGANIZATION_ID \
    --job_type=JOB_TYPE \
    --assignee_type=ORGANIZATION

Ganti kode berikut:

  • ADMIN_PROJECT_ID: project ID dari project administrasi yang memiliki resource pemesanan
  • LOCATION: lokasi pemesanan
  • RESERVATION_NAME: nama pemesanan
  • ORGANIZATION_ID: ID organisasi
  • JOB_TYPE: jenis tugas yang akan ditetapkan ke pemesanan ini, seperti QUERY, PIPELINE, BACKGROUND, atau ML_EXTERNAL

Saat membuat penetapan pemesanan, tunggu setidaknya 5 menit sebelum menjalankan kueri. Jika tidak, kueri mungkin akan ditagih menggunakan harga sesuai permintaan.

Menetapkan project atau folder ke pemesanan

Konsol

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di panel navigasi, buka bagian Pengelolaan Kapasitas.

  3. Klik tab Reservations.

  4. Temukan pemesanan di tabel pemesanan.

  5. Perluas opsi Actions.

  6. Klik Create assignment.

  7. Di bagian Create an assignment, klik Browse.

  8. Jelajahi atau telusuri project atau folder, lalu pilih project atau folder tersebut.

  9. Di bagian Job Type, pilih jenis tugas yang akan ditetapkan untuk pemesanan ini. Opsinya meliputi:

    • QUERY
    • PIPELINE
    • BACKGROUND
    • ML_EXTERNAL

    Untuk informasi selengkapnya tentang jenis tugas, lihat penetapan pemesanan. Nilai default ini adalah QUERY.

  10. Klik Create.

SQL

Untuk menetapkan project ke pemesanan, gunakan pernyataan DDL CREATE ASSIGNMENT.

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

    CREATE ASSIGNMENT
      `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID`
    OPTIONS(
      assignee="projects/PROJECT_ID",
      job_type="JOB_TYPE");
    

    Ganti kode berikut:

    • ADMIN_PROJECT_ID: project ID dari project administrasi yang memiliki resource pemesanan
    • LOCATION: lokasi pemesanan
    • RESERVATION_NAME: nama pemesanan
    • ASSIGNMENT_ID: ID tugas

      ID harus unik untuk project dan lokasi, diawali dan diakhiri dengan huruf kecil atau angka, serta hanya berisi huruf kecil, angka, dan tanda hubung.

    • PROJECT_ID: ID project yang akan ditetapkan ke pemesanan
    • JOB_TYPE: jenis tugas yang akan ditetapkan ke pemesanan ini, seperti QUERY, PIPELINE, BACKGROUND, atau ML_EXTERNAL

  3. Klik Run.

Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.

bq

Untuk menetapkan tugas ke pemesanan, gunakan perintah bq mk dengan flag --reservation_assignment:

bq mk \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment \
    --reservation_id=RESERVATION_NAME \
    --assignee_id=PROJECT_ID \
    --job_type=JOB_TYPE \
    --assignee_type=PROJECT

Ganti kode berikut:

  • ADMIN_PROJECT_ID: project ID dari project administrasi yang memiliki resource pemesanan
  • LOCATION: lokasi pemesanan
  • RESERVATION_NAME: nama pemesanan
  • PROJECT_ID: ID project yang akan ditetapkan ke pemesanan ini
  • JOB_TYPE: jenis tugas yang akan ditetapkan ke pemesanan ini, seperti QUERY, PIPELINE, BACKGROUND, atau ML_EXTERNAL

Saat membuat penetapan pemesanan, tunggu setidaknya 5 menit sebelum menjalankan kueri. Jika tidak, kueri mungkin akan ditagih menggunakan harga sesuai permintaan.

Untuk membuat project yang hanya menggunakan slot tidak ada aktivitas, buat reservasi dengan slot 0 yang ditetapkan ke project tersebut, lalu ikuti langkah-langkah sebelumnya untuk menetapkan project ke reservasi tersebut.

Menetapkan project ke none

Penetapan ke none mewakili tidak adanya penetapan. Project yang ditetapkan ke none menggunakan harga sesuai permintaan.

SQL

Untuk menetapkan project ke none, gunakan pernyataan DDL CREATE ASSIGNMENT.

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

    CREATE ASSIGNMENT
      `ADMIN_PROJECT_ID.region-LOCATION.none.ASSIGNMENT_ID`
    OPTIONS(
      assignee="projects/PROJECT_ID",
      job_type="JOB_TYPE");
    

    Ganti kode berikut:

    • LOCATION: lokasi tugas yang harus menggunakan harga sesuai permintaan
    • ASSIGNMENT_ID: ID penetapan

      ID harus unik untuk project dan lokasi, diawali dan diakhiri dengan huruf kecil atau angka, serta hanya berisi huruf kecil, angka, dan tanda hubung.

    • PROJECT_ID: ID project yang akan ditetapkan ke pemesanan

  3. Klik Run.

Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.

bq

Untuk menetapkan project ke none, gunakan perintah bq mk dengan flag --reservation_assignment:

bq mk \
    --location=LOCATION \
    --reservation_assignment \
    --reservation_id=none \
    --job_type=QUERY \
    --assignee_id=PROJECT_ID \
    --assignee_type=PROJECT

Ganti kode berikut:

  • LOCATION: lokasi tugas yang harus menggunakan harga sesuai permintaan
  • PROJECT_ID: ID project yang akan ditetapkan ke none

Menetapkan slot ke workload ML BigQuery

Jenis model ML BigQuery berikut menggunakan layanan eksternal:

Anda dapat menetapkan slot yang dicadangkan ke kueri menggunakan layanan ini menggunakan jenis penetapan ML_EXTERNAL. Jika jenis penetapan ML_EXTERNAL tidak ditemukan, tugas kueri akan dijalankan sebagai on-demand.

Gunakan perintah bq mk dengan flag --reservation_assignment dan tetapkan flag --job_type ke ML_EXTERNAL.

bq mk \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment \
    --reservation_id=RESERVATION_NAME \
    --job_type=ML_EXTERNAL\
    --assignee_id=PROJECT_ID \
    --assignee_type=PROJECT

Ganti kode berikut:

  • ADMIN_PROJECT_ID: ID project yang memiliki resource pemesanan
  • LOCATION: lokasi pemesanan
  • RESERVATION_NAME: nama pemesanan
  • PROJECT_ID: ID project yang akan ditetapkan ke pemesanan ini

Menemukan penetapan pemesanan

Izin yang diperlukan

Untuk menelusuri penetapan pemesanan untuk project, folder, atau organisasi tertentu, Anda memerlukan izin Identity and Access Management (IAM) berikut:

  • bigquery.reservationAssignments.list di project administrasi.

Setiap peran IAM yang telah ditetapkan berikut mencakup izin ini:

  • BigQuery Admin
  • BigQuery Resource Admin
  • BigQuery Resource Editor
  • BigQuery Resource Viewer
  • BigQuery User

Untuk mengetahui informasi selengkapnya tentang peran IAM di BigQuery, lihat Peran dan izin yang telah ditentukan sebelumnya.

Menemukan penetapan pemesanan project

Anda dapat mengetahui apakah project, folder, atau organisasi Anda ditetapkan ke pemesanan dengan melakukan hal berikut:

Konsol

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di panel navigasi, buka bagian Pengelolaan Kapasitas.

  3. Klik tab Reservations.

  4. Dalam tabel pemesanan, luaskan pemesanan untuk melihat resource yang ditetapkan ke pemesanan tersebut, atau gunakan kolom Filter untuk memfilter menurut nama resource.

SQL

Untuk menemukan pemesanan tempat tugas kueri project Anda ditetapkan, buat kueri tampilan INFORMATION_SCHEMA.ASSIGNMENTS_BY_PROJECT.

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

      SELECT
        assignment_id
      FROM `region-LOCATION`.INFORMATION_SCHEMA.ASSIGNMENTS_BY_PROJECT
      WHERE
        assignee_id = 'PROJECT_ID'
        AND job_type = 'JOB_TYPE';
    

    Ganti kode berikut:

    • LOCATION: lokasi pemesanan untuk dilihat
    • ADMIN_PROJECT_ID: ID project dari project administrasi yang memiliki resource pemesanan
    • PROJECT_ID: ID project yang akan ditetapkan ke pemesanan
    • JOB_TYPE: jenis tugas yang akan ditetapkan ke pemesanan ini, seperti QUERY, PIPELINE, BACKGROUND, atau ML_EXTERNAL

  3. Klik Run.

Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.

bq

Untuk menemukan pemesanan tempat tugas kueri project Anda ditetapkan, gunakan perintah bq show dengan flag --reservation_assignment:

bq show \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment \
    --job_type=JOB_TYPE \
    --assignee_id=PROJECT_ID \
    --assignee_type=PROJECT

Ganti kode berikut:

  • ADMIN_PROJECT_ID: ID project yang memiliki resource pemesanan
  • LOCATION: lokasi pemesanan untuk dilihat
  • JOB_TYPE: jenis tugas yang akan ditetapkan ke pemesanan ini, seperti QUERY, PIPELINE, BACKGROUND, atau ML_EXTERNAL
  • PROJECT_ID: ID project

Memperbarui penetapan pemesanan

Memindahkan penetapan ke pemesanan lain

Anda dapat memindahkan penetapan dari satu pemesanan ke pemesanan lainnya.

Untuk memindahkan penetapan pemesanan, Anda memerlukan izin Identity and Access Management (IAM) berikut di project administrasi dan penerima tugas.

  • bigquery.reservationAssignments.create
  • bigquery.reservationAssignments.delete

Setiap peran IAM yang telah ditetapkan mencakup izin berikut:

  • BigQuery Admin
  • BigQuery Resource Admin
  • BigQuery Resource Editor

Untuk mengetahui informasi selengkapnya tentang peran IAM di BigQuery, lihat Peran dan izin yang telah ditentukan sebelumnya.

Untuk memindahkan penetapan, gunakan perintah bq update:

bq update \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment \
    --destination_reservation_id=DESTINATION_RESERVATION \
    ADMIN_PROJECT_ID:LOCATION.RESERVATION_NAME.ASSIGNMENT_ID

Ganti kode berikut:

  • ADMIN_PROJECT_ID: ID project yang memiliki resource pemesanan
  • LOCATION: lokasi pemesanan baru
  • RESERVATION_NAME: reservasi untuk memindahkan penetapan
  • DESTINATION_RESERVATION: pemesanan untuk memindahkan penetapan ke
  • ASSIGNMENT_ID: ID penetapan

    Untuk mendapatkan ID penetapan, lihat Mencantumkan penetapan pemesanan project.

Menghapus penetapan pemesanan

Anda dapat menghapus project dari pemesanan dengan menghapus penetapan pemesanan. Jika tidak ditetapkan ke pemesanan apa pun, project akan mewarisi penetapan apa pun di folder atau organisasi induknya, atau menggunakan harga sesuai permintaan jika tidak ada penetapan induk.

Izin yang diperlukan

Untuk menghapus penetapan pemesanan, Anda memerlukan izin Identity and Access Management (IAM) berikut:

Setiap peran IAM berikut yang telah ditentukan sebelumnya menyertakan izin ini:

  • BigQuery Admin
  • BigQuery Resource Admin
  • BigQuery Resource Editor

Menghapus project dari pemesanan

Untuk menghapus project dari pemesanan:

Konsol

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di panel navigasi, buka bagian Pengelolaan Kapasitas.

  3. Klik tab Reservations.

  4. Dalam tabel pemesanan, luaskan pemesanan untuk menemukan project.

  5. Perluas opsi Actions.

  6. Klik Delete.

SQL

Gunakan pernyataan DDL DROP ASSIGNMENT.

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

    DROP ASSIGNMENT
      `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME.ASSIGNMENT_ID`;
    

    Ganti kode berikut:

  3. Klik Run.

Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.

bq

Untuk menghapus project dari pemesanan, gunakan perintah bq rm dengan flag --reservation_assignment:

bq rm \
    --project_id=ADMIN_PROJECT_ID \
    --location=LOCATION \
    --reservation_assignment RESERVATION_NAME.ASSIGNMENT_ID

Ganti kode berikut:

  • ADMIN_PROJECT_ID: ID project yang memiliki resource pemesanan
  • LOCATION: lokasi pemesanan
  • RESERVATION_NAME: nama pemesanan
  • ASSIGNMENT_ID: ID penetapan

    Untuk mendapatkan ID penetapan, lihat Menemukan penetapan pemesanan project.