Mengekspor rekomendasi ke BigQuery

Ringkasan

Dengan BigQuery Export, Anda dapat melihat ringkasan rekomendasi harian untuk organisasi Anda. Hal ini dilakukan dengan menggunakan BigQuery Data Transfer Service. Lihat dokumen ini untuk melihat pemberi rekomendasi yang disertakan dalam BigQuery Export saat ini.

Sebelum memulai

Selesaikan langkah-langkah berikut sebelum Anda melakukan transfer data untuk rekomendasi:

  • Berikan izin BigQuery Data Transfer Service untuk mengelola transfer data Anda. Jika menggunakan UI web BigQuery untuk membuat transfer, Anda harus mengizinkan pop-up dari console.cloud.google.com di browser agar dapat melihat izin. Untuk mengetahui detail selengkapnya, lihat mengaktifkan BigQuery Data Transfer Service.
  • Buat set data BigQuery untuk menyimpan data.
    • Transfer data menggunakan region yang sama tempat set data dibuat. Lokasi tidak dapat diubah setelah set data dan transfer dibuat.
    • Set data ini akan berisi insight dan rekomendasi dari semua wilayah di seluruh dunia. Dengan demikian, operasi ini akan menggabungkan semua data tersebut ke dalam region global selama prosesnya. Hubungi Google Cloud Customer Care jika ada masalah residensi data.
    • Jika lokasi set data baru diluncurkan, mungkin akan terjadi keterlambatan pada ketersediaan data ekspor awal.

Harga

Pengeksporan rekomendasi ke BigQuery tersedia untuk semua pelanggan Pemberi Rekomendasi berdasarkan tingkat harga Pemberi rekomendasi mereka.

Izin yang diperlukan

Saat menyiapkan transfer data, Anda memerlukan izin berikut di level project tempat Anda membuat transfer data:

  • bigquery.transfers.update - Memungkinkan Anda melakukan transfer
  • bigquery.datasets.update - Memungkinkan Anda memperbarui tindakan pada set data target
  • resourcemanager.projects.update - Memungkinkan Anda memilih project tempat Anda ingin menyimpan data yang diekspor
  • pubsub.topics.list - Memungkinkan Anda memilih topik Pub/Sub untuk menerima notifikasi tentang ekspor Anda

Izin berikut diperlukan di tingkat organisasi. Organisasi ini sesuai dengan organisasi yang ekspornya sedang disiapkan.

  • recommender.resources.export - Memungkinkan Anda mengekspor rekomendasi ke BigQuery

Izin berikut diperlukan untuk mengekspor harga yang dinegosiasikan untuk rekomendasi penghematan biaya:

  • billing.resourceCosts.get at project level - Memungkinkan ekspor harga yang dinegosiasikan untuk rekomendasi tingkat project
  • billing.accounts.getSpendingInformation at billing account level - Memungkinkan ekspor harga yang dinegosiasikan untuk rekomendasi tingkat akun penagihan

Tanpa izin ini, rekomendasi penghematan biaya akan diekspor dengan harga standar, bukan harga yang dinegosiasikan.

Memberikan izin

Peran berikut harus diberikan pada project tempat Anda membuat transfer data:

    Agar Anda dapat membuat tindakan transfer dan pembaruan pada set data target, Anda harus memberikan peran berikut:

  • Peran admin BigQuery - roles/bigquery.admin
  • Ada beberapa peran yang berisi izin untuk memilih project guna menyimpan data ekspor Anda dan memilih topik Pub/Sub yang akan menerima notifikasi. Agar kedua izin ini tersedia, Anda dapat memberikan peran berikut:

  • Peran Project owner - roles/owner
  • Ada beberapa peran yang berisi izin billing.resourceCosts.get untuk mengekspor harga yang dinegosiasikan guna menghemat biaya rekomendasi tingkat project - Anda dapat memberikan salah satunya:

  • Peran Project Owner - roles/owner
  • Peran Project Viewer - roles/viewer
  • Peran Project Editor - roles/editor
  • Ada beberapa peran yang berisi izin billing.accounts.getSpendingInformation untuk mengekspor harga yang dinegosiasikan guna mendapatkan rekomendasi tingkat akun penagihan penghematan biaya - Anda dapat memberikan salah satunya:

  • Peran Billing Account Administrator - roles/billing.admin
  • Peran Billing Account Costs Manager - roles/billing.costsManager
  • Peran Billing Account Viewer - roles/billing.viewer

Anda harus memberikan peran berikut di tingkat organisasi:

  • Peran Pengekspor Rekomendasi (roles/recommender.exporter) di Konsol Google Cloud.

Anda juga dapat membuat peran Kustom yang berisi izin yang diperlukan.

Membuat transfer data untuk rekomendasi

  1. Login ke Konsol Google Cloud.

    Login ke konsol Google Cloud

  2. Dari layar Beranda, klik tab Rekomendasi.

  3. Klik Export untuk melihat formulir BigQuery Export.

  4. Pilih Project Tujuan untuk menyimpan data rekomendasi, lalu klik Berikutnya.

  5. Klik Enable APIs guna mengaktifkan BigQuery API untuk ekspor. Proses ini dapat memerlukan waktu beberapa detik. Setelah selesai, klik Continue.

  6. Pada formulir Mengonfigurasi Transfer, berikan detail berikut:

    • Di bagian Transfer config name, untuk Display name, masukkan nama untuk transfer. Nama transfer dapat berupa nilai apa pun yang memungkinkan Anda mengidentifikasi transfer dengan mudah jika Anda perlu mengubahnya nanti.

    • Di bagian Opsi jadwal, untuk Jadwal, biarkan nilai default (Mulai sekarang) atau klik Mulai pada waktu yang ditentukan.

      • Untuk Repeats, pilih opsi seberapa sering transfer dijalankan.

        • Harian (default)
        • Mingguan
        • Bulanan
        • Khusus
        • Sesuai permintaan
      • Untuk Tanggal mulai dan waktu proses, masukkan tanggal dan waktu untuk memulai transfer. Jika Anda memilih Mulai sekarang, opsi ini akan dinonaktifkan.

    • Di bagian Destination settings, untuk Set data tujuan, pilih ID set data yang Anda buat untuk menyimpan data.

    • Di bagian Data source details:

      • Nilai default untuk organization_id adalah organisasi yang saat ini Anda lihat rekomendasinya. Jika ingin mengekspor rekomendasi ke organisasi lain, Anda dapat mengubahnya di atas konsol di penampil organisasi.

    • (Opsional) Di bagian Notification options:

      • Klik tombol untuk mengaktifkan notifikasi email. Saat Anda mengaktifkan opsi ini, administrator transfer akan menerima notifikasi email saat proses transfer gagal.
      • Untuk Select a Pub/Sub topic, pilih nama topik atau klik Create a topic. Opsi ini mengonfigurasi notifikasi operasi Pub/Sub untuk transfer Anda.

  7. Klik Buat untuk melakukan transfer.

  8. Klik Izinkan di jendela pop-up izin.

  9. Setelah transfer dibuat, Anda akan diarahkan kembali ke Hub Rekomendasi. Anda dapat mengklik link untuk mengakses detail konfigurasi transfer. Atau, Anda dapat mengakses transfer tersebut dengan melakukan hal berikut:

    • Buka halaman BigQuery di konsol Google Cloud.

      Buka halaman BigQuery

    • Klik Transfer Data. Anda dapat melihat semua transfer data yang tersedia.

Melihat histori run untuk transfer

Untuk melihat histori run untuk transfer, lakukan hal berikut:

  1. Buka halaman BigQuery di konsol Google Cloud.

    Buka halaman BigQuery

  2. Klik Transfer Data. Anda dapat melihat semua transfer data yang tersedia.

  3. Klik transfer yang sesuai di daftar.

  4. Dalam daftar transfer run yang ditampilkan pada tab JALANKAN HISTORI, pilih transfer yang ingin Anda lihat detailnya.

  5. Panel Run details ditampilkan untuk masing-masing transfer run yang Anda pilih. Beberapa detail operasi yang mungkin ditampilkan adalah:

    • Transfer ditangguhkan karena data sumber tidak tersedia.
    • Tugas yang menunjukkan jumlah baris yang diekspor ke tabel
    • Tidak ada izin untuk sumber data yang harus Anda berikan dan jadwalkan pengisian ulang nanti.

Kapan data Anda diekspor?

Saat Anda melakukan transfer data, ekspor pertama akan dilakukan dalam dua hari. Setelah ekspor pertama, tugas ekspor berjalan sesuai ritme yang Anda minta pada waktu penyiapan. Kondisi berikut berlaku:

  • Tugas ekspor untuk hari tertentu (D) mengekspor data (D) akhir hari ke set data BigQuery Anda, yang biasanya selesai pada akhir hari berikutnya (H+1). Tugas ekspor berjalan dalam zona waktu PST dan mungkin terlihat mengalami keterlambatan tambahan untuk zona waktu lain.

  • Tugas ekspor harian tidak berjalan sampai semua data untuk ekspor tersedia. Hal ini dapat menyebabkan variasi, dan terkadang penundaan, pada hari dan waktu set data Anda diperbarui. Oleh karena itu, sebaiknya gunakan snapshot data terbaru yang tersedia, daripada memiliki dependensi yang sulit untuk terpengaruh pada tabel bertanggal tertentu.

Pesan status umum pada ekspor

Pelajari pesan status umum yang dapat Anda lihat untuk mengekspor rekomendasi ke BigQuery.

Pengguna tidak memiliki izin yang diperlukan

Pesan berikut muncul saat pengguna tidak memiliki izin yang diperlukan recommender.resources.export. Anda akan melihat pesan berikut:

User does not have required permission "recommender.resources.export". Please, obtain the required permissions for the datasource and try again by triggering a backfill for this date

Untuk mengatasi masalah ini, berikan peran IAM roles/recommender.exporter kepada user/service account yang menyiapkan ekspor di tingkat organisasi untuk organisasi tempat ekspor disiapkan. Ini dapat diberikan melalui perintah gcloud di bawah ini:

  • Untuk Pengguna:

    gcloud organizations add-iam-policy-binding *<organization_id>* --member='user:*<user_name>*' --role='roles/recommender.exporter'
    
  • Jika Akun Layanan:

    gcloud organizations add-iam-policy-binding *<organization_id>* --member='serviceAccount:*<service_acct_name>*' --role='roles/recommender.exporter'
    

Transfer ditangguhkan karena data sumber tidak tersedia

Pesan berikut muncul saat transfer dijadwalkan ulang karena data sumber belum tersedia. Ini bukan error. Artinya pipeline ekspor belum selesai untuk hari ini. Transfer akan dijalankan kembali pada waktu terjadwal yang baru dan akan berhasil setelah pipeline ekspor selesai. Anda akan melihat pesan berikut:

Transfer deferred due to source data not being available

Data sumber tidak ditemukan

Pesan berikut terjadi saat pipeline F1toPlacer selesai, tetapi tidak ada rekomendasi atau insight yang ditemukan untuk organisasi tempat ekspor disiapkan. Anda akan melihat pesan berikut:

Source data not found for 'recommendations_export$<date>'insights_export$<date>

Pesan ini muncul karena alasan berikut:

  • Pengguna menyiapkan ekspor kurang dari 2 hari yang lalu. Panduan pelanggan memberi tahu pelanggan bahwa ada keterlambatan satu hari sebelum ekspor mereka tersedia.
  • Tidak ada rekomendasi atau insight yang tersedia untuk organisasi mereka untuk hari tertentu. Hal ini bisa jadi merupakan kasus yang sebenarnya atau pipeline mungkin telah berjalan sebelum semua rekomendasi atau insight tersedia untuk hari itu.

Melihat tabel untuk transfer

Saat Anda mengekspor rekomendasi ke BigQuery, set data akan berisi dua tabel yang partitioned menurut tanggal:

  • recommendations_export
  • insight_export

Untuk detail selengkapnya tentang tabel dan skema, lihat Membuat dan menggunakan tabel dan Menentukan skema.

Untuk melihat tabel untuk transfer data, lakukan hal berikut:

  1. Buka halaman BigQuery di konsol Google Cloud. Buka halaman BigQuery

  2. Klik Transfer Data. Anda dapat melihat semua transfer data yang tersedia.

  3. Klik transfer yang sesuai di daftar.

  4. Klik tab CONFIGURATION dan klik set data.

  5. Di panel Explorer, luaskan project Anda dan pilih set data. Deskripsi dan detail muncul di panel detail. Tabel untuk {i>dataset<i} dicantumkan dengan nama {i>dataset<i} di panel Explorer.

Menjadwalkan pengisian ulang

Rekomendasi untuk tanggal di masa lalu (tanggal ini lebih lambat dari tanggal saat organisasi diikutsertakan untuk ekspor) dapat diekspor dengan menjadwalkan pengisian ulang. Untuk menjadwalkan pengisian ulang, lakukan hal berikut:

  1. Buka halaman BigQuery di konsol Google Cloud.

    Buka halaman BigQuery

  2. Klik Transfer Data.

  3. Di halaman Transfer, klik transfer yang sesuai dalam daftar.

    1. Klik Jadwalkan pengisian ulang.

    2. Dalam dialog Jadwalkan pengisian ulang, pilih Tanggal mulai dan Tanggal akhir.

Untuk mengetahui informasi selengkapnya tentang cara menangani transfer, lihat Bekerja dengan transfer.

Contoh kueri

Anda dapat menggunakan contoh kueri berikut untuk menganalisis data yang diekspor.

Melihat penghematan biaya untuk rekomendasi dengan durasi rekomendasi ditampilkan dalam hari

SELECT name, recommender, target_resources,
  case primary_impact.cost_projection.cost.units is null
       when true then round(primary_impact.cost_projection.cost.nanos * power(10,-9),2)
       else
       round( primary_impact.cost_projection.cost.units +
       (primary_impact.cost_projection.cost.nanos * power(10,-9)), 2)
   end
   as dollar_amt,
   primary_impact.cost_projection.duration.seconds/(60*60*24) as duration_in_days
FROM `<project>.<dataset>.recommendations_export`
WHERE DATE(_PARTITIONTIME) = "<date>"
and primary_impact.category = "COST"

Melihat daftar peran IAM yang tidak digunakan

SELECT *
FROM `<project>.<dataset>.recommendations_export`
WHERE DATE(_PARTITIONTIME) = "<date>"
and recommender = "google.iam.policy.Recommender"
and recommender_subtype = "REMOVE_ROLE"

Melihat daftar peran yang diberikan yang harus diganti dengan peran yang lebih kecil

SELECT *
FROM `<project>.<dataset>.recommendations_export`
WHERE DATE(_PARTITIONTIME) = "<date>"
and recommender = "google.iam.policy.Recommender"
and recommender_subtype = "REPLACE_ROLE"

Melihat insight untuk rekomendasi

SELECT recommendations.name as recommendation_name,
insights.name as insight_name,
recommendations.cloud_entity_id,
recommendations.cloud_entity_type,
recommendations.recommender,
recommendations.recommender_subtype,
recommendations.description,
recommendations.target_resources,
recommendations.recommendation_details,
recommendations.state,
recommendations.last_refresh_time as recommendation_last_refresh_time,
insights.insight_type,
insights.insight_subtype,
insights.category,
insights.description,
insights.insight_details,
insights.state,
insights.last_refresh_time as insight_last_refresh_time
FROM `<project>.<dataset>.recommendations_export` as recommendations,
   `<project>.<dataset>.insights_export` as insights
WHERE DATE(recommendations._PARTITIONTIME) = "<date>"
and DATE(insights._PARTITIONTIME) = "<date>"
and insights.name in unnest(recommendations.associated_insights)

Melihat rekomendasi untuk project yang termasuk dalam folder tertentu

Kueri ini menampilkan folder induk hingga lima level dari project.

SELECT *
FROM `<project>.<dataset>.recommendations_export`
WHERE DATE(_PARTITIONTIME) = "<date>"
and "<folder_id>" in unnest(ancestors.folder_ids)

Melihat rekomendasi untuk tanggal terbaru yang tersedia yang diekspor sejauh ini

DECLARE max_date TIMESTAMP;

SET max_date = (
  SELECT MAX(_PARTITIONTIME) FROM
  `<project>.<dataset>.recommendations_export`
  );

SELECT *
FROM `<project>.<dataset>.recommendations_export`
WHERE _PARTITIONTIME = max_date

Menggunakan Spreadsheet untuk menjelajahi data BigQuery

Selain menjalankan kueri di BigQuery, Anda dapat mengakses, menganalisis, memvisualisasikan, dan membagikan miliaran baris data BigQuery dari spreadsheet dengan Sheet yang Terhubung, konektor data BigQuery yang baru. Untuk informasi selengkapnya, lihat Mulai menggunakan data BigQuery di Google Spreadsheet.

Menyiapkan Ekspor Menggunakan Command Line & REST API BigQuery

  • Dapatkan izin yang diperlukan:

    Anda bisa mendapatkan izin Identity and Access Management yang diperlukan melalui Google Cloud Console atau command line.

    Misalnya, untuk menggunakan Command Line guna mendapatkan izin pemberi rekomendasi.resources.export tingkat organisasi untuk akun layanan:

    gcloud organizations add-iam-policy-binding *<organization_id>* --member=serviceAccount:*<service_acct_name>*' --role='roles/recommender.exporter'

  • Membuat set data & mengaktifkan BigQuery API

  • Mendaftarkan project di sumber data BigQuery

    Datasource to use: 6063d10f-0000-2c12-a706-f403045e6250

  • Buat ekspor:

    bq mk \
    --transfer_config \
    --project_id=project_id \
    --target_dataset=dataset_id \
    --display_name=name \
    --params='parameters' \
    --data_source=data_source \
    --service_account_name=service_account_name

    Dengan keterangan:

    • project_id adalah project ID Anda.
    • dataset adalah ID set data target untuk konfigurasi transfer.
    • name adalah nama tampilan untuk konfigurasi transfer. Nama transfer dapat berupa nilai apa pun yang memudahkan Anda mengidentifikasi transfer jika perlu mengubahnya nanti.
    • parameters berisi parameter untuk konfigurasi transfer yang dibuat dalam format JSON. Untuk Rekomendasi dan Insight BigQuery Export, Anda harus menyediakan organization_id yang rekomendasi dan insightnya perlu diekspor. Parameters format: '{"organization_id":"<org id>"}'
    • data_source Sumber data yang akan digunakan: '6063d10f-0000-2c12-a706-f403045e6250'
    • service_account_name adalah nama akun layanan yang digunakan untuk mengautentikasi ekspor. Akun layanan harus dimiliki oleh project_id yang sama yang digunakan untuk membuat transfer dan harus memiliki semua izin yang diperlukan yang tercantum di atas.
  • Kelola ekspor yang ada melalui UI atau Command Line BigQuery:

  • Catatan - ekspor berjalan sebagai pengguna yang menyiapkan akun, terlepas dari siapa yang memperbarui konfigurasi ekspor di masa mendatang. Misalnya, jika ekspor disiapkan menggunakan akun layanan, lalu pengguna manusia memperbarui konfigurasi ekspor melalui UI BigQuery Data Transfer Service, ekspor akan terus dijalankan sebagai akun layanan. Pemeriksaan izin untuk 'recommendeder.resources.export' dalam kasus ini dilakukan untuk akun layanan setiap kali ekspor berjalan.