Panduan ini membantu Anda memahami, men-deploy, dan menggunakan Solusi Praktis Data warehouse dengan BigQuery. Solusi ini menunjukkan cara membangun data warehouse di Google Cloud menggunakan BigQuery sebagai data warehouse, dengan Looker Studio sebagai dasbor dan alat visualisasi. Solusi ini juga menggunakan kemampuan AI generatif dari Vertex AI untuk menghasilkan teks yang merangkum analisis.
Kasus penggunaan umum untuk membangun data warehouse meliputi:
- Menggabungkan dan membuat warehouse analisis pemasaran untuk meningkatkan pendapatan atau metrik pelanggan yang lain.
- Membuat laporan dan analisis keuangan.
- Membuat dasbor operasional untuk meningkatkan performa perusahaan.
Dokumen ini ditujukan bagi developer yang memiliki latar belakang analisis data dan telah menggunakan database untuk melakukan analisis. Hal ini mengasumsikan bahwa Anda sudah mengenal konsep-konsep dasar dari cloud, walaupun belum tentu menggunakan Google Cloud. Pengalaman menggunakan Terraform sangat membantu untuk men-deploy solusi ini melalui konsol, tetapi tidak diwajibkan.
Tujuan
- Mengetahui bagaimana data mengalir ke dalam cloud data warehouse, dan cara mengubah data tersebut menggunakan SQL.
- Membuat dasbor dari data untuk melakukan analisis data.
- Menjadwalkan pernyataan SQL untuk memperbarui data pada pengulangan umum.
- Membuat model machine learning untuk memprediksi nilai data dari waktu ke waktu.
- Gunakan AI generatif untuk meringkas hasil model machine learning Anda.
Produk yang digunakan
Solusi ini menggunakan produk-produk Google Cloud berikut ini:
- BigQuery: Data warehouse yang terkelola sepenuhnya dan sangat skalabel dengan kemampuan machine learning bawaan.
- Cloud Storage: Sebuah layanan yang siap digunakan perusahaan yang menyediakan penyimpanan objek berbiaya rendah dan tanpa batas untuk berbagai jenis data. Data dapat diakses dari dalam dan dari luar Google Cloud serta direplikasi secara geo-redundan.
- Looker Studio: Platform business intelligence mandiri yang membantu Anda membuat dan membagikan insight data.
- Vertex AI: Platform machine learning (ML) yang memungkinkan Anda melatih dan men-deploy model ML dan aplikasi AI.
Produk Google Cloud berikut digunakan untuk melakukan tahapan data dalam solusi untuk penggunaan pertama:
- Alur kerja: Platform orkestrasi terkelola sepenuhnya yang mengeksekusi layanan dalam urutan yang ditentukan sebagai alur kerja. Alur kerja dapat menggabungkan berbagai layanan, termasuk layanan kustom yang dihosting di Cloud Run atau Cloud Functions, layanan Google Cloud seperti BigQuery, dan API berbasis HTTP apa pun.
- Cloud Functions: Lingkungan eksekusi tanpa server untuk membuat dan menghubungkan layanan cloud.
Arsitektur
Contoh warehouse yang di-deploy oleh solusi ini menganalisis data e-commerce fiktif dari TheLook untuk memahami performa perusahaan dari waktu ke waktu. Diagram berikut menunjukkan arsitektur resource Google Cloud yang di-deploy oleh solusi tersebut.
Alur solusi
Arsitektur ini mewakili aliran data umum untuk mengisi dan mengubah data untuk data warehouse:
- Data dikirim ke bucketCloud Storage.
- Workflows memfasilitasi pemindahan data.
- Data dimuat ke BigQuery sebagai tabel BigLake menggunakan prosedur SQL tersimpan.
- Data ditransformasikan dalam BigQuery menggunakan prosedur yang tersimpan di SQL.
- Dasbor dibuat dari data untuk dianalisis lebih lanjut dengan Looker Studio.
- Data dianalisis menggunakan model k-means yang dibuat dengan BigQuery ML. Analisis ini mengidentifikasi pola umum, yang dirangkum menggunakan kemampuan AI generatif dari Vertex AI melalui BigQuery.
- Cloud Functions membuat notebook Python dengan konten pembelajaran tambahan.
Biaya
Untuk mengetahui estimasi biaya resource Google Cloud yang digunakan oleh data warehouse menggunakan solusi BigQuery, lihat estimasi yang telah dihitung sebelumnya di Kalkulator Harga Google Cloud.
Gunakan estimasi tersebut sebagai titik awal untuk menghitung biaya deployment Anda. Anda dapat mengubah perkiraan biaya untuk mencerminkan setiap perubahan konfigurasi yang Anda rencanakan untuk memastikan resource yang digunakan dalam solusi.
Perkiraan yang telah dihitung sebelumnya didasarkan pada asumsi untuk faktor-faktor tertentu, termasuk hal-hal berikut:
- Lokasi Google Cloud tempat resource di-deploy.
Durasi waktu resource tersebut digunakan.
Tempat data di-stage.
Men-deploy solusi
Bagian ini memandu Anda dalam proses men-deploy solusi.
Membuat atau memilih project Google Cloud
Saat Anda men-deploy solusi, Anda perlu menentukan di mana project Google Cloud resource akan di-deploy. Ketika Anda memutuskan apakah akan menggunakan project yang telah ada atau membuat project baru, pertimbangkan faktor-faktor berikut:
- Jika membuat project untuk solusi tersebut, saat deployment tidak diperlukan lagi, Anda dapat menghapus project tersebut dan menghindari penagihan berkelanjutan. Jika Anda menggunakan project yang telah ada, Anda harus menghapus deployment jika tidak lagi memerlukannya.
- Menggunakan project dapat membantu menghindari konflik dengan resource yang telah disediakan sebelumnya, seperti resource yang digunakan untuk workload produksi.
Jika Anda ingin men-deploy solusi dalam project baru, buatlah project sebelum memulai deployment.
Untuk membuat project, selesaikan langkah-langkah berikut ini:
-
Di konsol Google Cloud, buka halaman Pemilih project.
-
Untuk mulai membuat project Google Cloud, klik Buat project.
-
Beri nama project Anda. Catat project ID yang dibuat.
-
Edit kolom lain sesuai kebutuhan.
-
Untuk membuat project, klik Buat.
Mendapatkan izin IAM yang diperlukan
Untuk memulai proses deployment, Anda memerlukan izin Identity and Access Management (IAM)
yang terdaftar dalam tabel berikut ini. Jika Anda memiliki peran dasar roles/owner
untuk project tempat Anda berencana men-deploy solusi, berarti Anda telah memiliki semua izin yang diperlukan. Jika Anda tidak memiliki peran roles/owner
,
mintalah administrator Anda untuk memberikan izin ini (atau peran yang
menyertakan izin ini) kepada Anda.
Izin IAM diperlukan | Peran bawaan yang mencakup izin yang diperlukan |
---|---|
|
Service Usage Admin ( roles/serviceusage.serviceUsageAdmin ) |
|
Service Account Admin ( roles/iam.serviceAccountAdmin ) |
|
Admin IAM Project ( roles/resourcemanager.projectIamAdmin ) |
config.deployments.create config.deployments.list |
Cloud Infrastructure Manager Admin ( roles/config.admin ) |
Akun layanan yang dibuat untuk solusi
Jika Anda memulai proses deployment melalui konsol, Google akan membuat akun layanan untuk men-deploy solusi atas nama Anda (dan menghapus deployment nanti jika Anda memilihnya). Akun layanan ini diberi izin IAM tertentu untuk sementara; yaitu, izin dicabut secara otomatis setelah operasi deployment dan penghapusan solusi selesai. Google merekomendasikan agar Anda menghapus akun layanan setelah menghapus deployment, seperti yang dijelaskan nanti dalam panduan ini.
Melihat peran yang ditetapkan ke akun layanan
Peran-peran tersebut tercantum di sini untuk mengantisipasi jika administrator project Google Cloud atau organisasi Anda membutuhkan informasi ini.
roles/aiplatform.admin
roles/bigquery.admin
roles/cloudfunctions.admin
roles/config.agent
roles/datalineage.viewer
roles/dataform.admin
roles/iam.serviceAccountAdmin
roles/iam.serviceAccountUser
roles/iam.serviceAccountTokenCreator
roles/logging.configWriter
roles/resourcemanager.projectIamAdmin
roles/run.invoker
roles/serviceusage.serviceUsageAdmin
roles/storage.admin
roles/workflows.admin
Memilih metode deployment
Untuk membantu Anda men-deploy solusi ini dengan upaya minimal, konfigurasi Terraform disediakan di GitHub. Konfigurasi Terraform menentukan semua resource Google Cloud yang diperlukan untuk solusi.
Anda dapat men-deploy solusi menggunakan salah satu dari metode berikut ini:
Melalui konsol: Gunakan metode ini jika Anda ingin mencoba solusi dengan konfigurasi default dan melihat cara kerjanya. Cloud Build men-deploy semua resource yang diperlukan untuk solusi. Jika Anda sudah tidak memerlukan solusi yang di-deploy, Anda dapat menghapusnya melalui konsol. Semua resource yang telah Anda buat setelah men-deploy solusi mungkin perlu dihapus secara terpisah.
Untuk menggunakan metode deployment ini, ikuti petunjuknya di Deploy melalui konsol.
Menggunakan Terraform CLI: Gunakan metode ini jika Anda ingin menyesuaikan solusi atau mengotomatisasi penyediaan dan pengelolaan resource menggunakan pendekatan Infrastructure as Code (IaC). Download konfigurasi Terraform melalui GitHub, sesuaikan kode secara opsional sesuai kebutuhan, kemudian deploy solusi menggunakan Terraform CLI. Setelah men-deploy solusi, Anda dapat terus menggunakan Terraform untuk mengelola solusi tersebut.
Untuk menggunakan metode deployment ini, ikuti instruksinya di Men-deploy menggunakan Terraform CLI.
Men-deploy melalui konsol
Selesaikan langkah-langkah berikut untuk men-deploy solusi yang telah terkonfigurasi.
Pada katalog solusi praktis Google Cloud, buka solusi Data warehouse menggunakan BigQuery.
Tinjau informasi yang ada pada halaman tersebut, seperti estimasi biaya solusi dan estimasi waktu deployment.
Jika sudah siap untuk mulai men-deploy solusi, klik Deploy.
Panduan interaktif langkah demi langkah akan ditampilkan.
Selesaikan langkah-langkah dalam panduan interaktif.
Catat nama yang Anda masukkan untuk deployment. Nama ini akan diperlukan saat Anda menghapus deployment.
Saat Anda mengklik Deploy, halaman Deployment solusi akan ditampilkan. Kolom Status di halaman ini menampilkan Men-deploy.
Tunggu hingga solusi berhasil di-deploy.
Jika deployment gagal, kolom Status akan menampilkan Gagal. Anda dapat menggunakan log Cloud Build untuk mendiagnosis error. Untuk informasi selengkapnya, lihat Error ketika men-deploy melalui konsol.
Setelah deployment selesai, kolom Status berubah menjadi Ter-deploy.
Untuk memverifikasi resource yang di-deploy, klik menu
Tindakan, kemudian pilih Melihat resource.Halaman Inventaris Aset pada konsol Google Cloud akan terbuka pada tab browser baru. Halaman ini mencantumkan objek BigQuery, Cloud Function, alur kerja Workflows, topik Pub/Sub , dan resource pemicu Eventarc yang di-deploy oleh solusi tersebut.
Untuk melihat detail dari setiap resource, klik nama resource pada kolom Nama tampilan.
Untuk melihat dan menggunakan solusi, kembali ke halaman Deployment solusi di konsol.
- Klik menu Tindakan.
- Pilih Lihat Dasbor Looker Studio untuk membuka dasbor yang dibuat diatas data sampel yang diubah menggunakan solusi tersebut
- Pilih Buka BigQuery Editor untuk menjalankan kueri dan untuk mem-build model machine learning (ML) menggunakan data sampel dalam solusi.
Ketika Anda tidak lagi memerlukan solusi tersebut, Anda dapat menghapus deployment untuk menghindari penagihan berkelanjutan untuk resource Google Cloud tersebut. Untuk informasi selengkapnya, lihat Menghapus deployment.
Men-deploy menggunakan Terraform CLI
Bagian ini menjelaskan cara menyesuaikan solusi atau mengotomatiskan penyediaan dan pengelolaan solusi menggunakan Terraform CLI. Solusi yang Anda deploy menggunakan Terraform CLI tidak ditampilkan di halaman Deployment solusi pada Konsol Google Cloud.
Menyiapkan klien Terraform
Anda dapat menjalankan Terraform baik di Cloud Shell maupun host lokal Anda. Panduan ini menjelaskan cara menjalankan Terraform di Cloud Shell, yang telah menginstal Terraform di Cloud Shell dan dikonfigurasi untuk diautentikasi dengan Google Cloud.
Kode Terraform untuk solusi ini tersedia di repositori GitHub.
Lakukan clone repositori GitHub ke Cloud Shell.
Perintah akan ditampilkan untuk mengonfirmasi download repositori GitHub ke Cloud Shell.
Klik Confirm.
Cloud Shell diluncurkan di tab browser yang terpisah, lalu kode Terraform didownload ke direktori
$HOME/cloudshell_open
lingkungan Cloud Shell Anda.Dalam Cloud Shell, periksa apakah direktori yang sedang bekerja adalah
$HOME/cloudshell_open/terraform-google-bigquery/modules/data_warehouse
. Ini merupakan direktori yang berisi file konfigurasi Terraform untuk solusi. Jika Anda perlu mengubah ke direktori tersebut, jalankan perintah berikut:cd $HOME/cloudshell_open/terraform-google-bigquery/modules/data_warehouse
Lakukan inisialisasi Terraform dengan menjalankan perintah berikut:
terraform init
Tunggu hingga Anda melihat pesan berikut:
Terraform has been successfully initialized!
Mengonfigurasi variabel Terraform
Kode Terraform yang Anda download mencakup variabel yang dapat digunakan untuk menyesuaikan deployment berdasarkan persyaratan Anda. Misalnya, Anda dapat menentukan project Google Cloud dan region tempat Anda ingin men-deploy solusi.
Pastikan direktori yang sedang bekerja adalah
$HOME/cloudshell_open/terraform-google-bigquery/modules/data_warehouse
. Jika bukan, buka direktori tersebut.Pada direktori yang sama, buatlah file teks dengan nama
terraform.tfvars
.Dalam file
terraform.tfvars
, salin cuplikan kode berikut dan tetapkan nilai untuk variabel yang diperlukan.- Ikuti petunjuk yang disediakan sebagai komentar dalam cuplikan kode.
- Cuplikan kode ini hanya mencakup variabel yang harus Anda tetapkan
nilainya. Konfigurasi Terraform mencakup variabel lain yang memiliki
nilai default. Untuk meninjau semua variabel dan nilai default, lihat
file
variables.tf
yang tersedia di direktori$HOME/cloudshell_open/terraform-google-bigquery/modules/data_warehouse
. - Pastikan setiap nilai yang Anda tetapkan dalam file
terraform.tfvars
cocok dengan jenis variabel seperti yang dideklarasikan di dalam filevariables.tf
. Misalnya, jika jenis yang ditentukan untuk variabel di dalam filevariables.tf
adalahbool
, maka Anda harus memastikantrue
ataufalse
sebagai nilai dari variabel dalamterraform.tfvars
file.
# This is an example of the terraform.tfvars file. # The values in this file must match the variable types declared in variables.tf. # The values in this file override any defaults in variables.tf. # ID of the project in which you want to deploy the solution project_id = "PROJECT_ID" # Google Cloud region where you want to deploy the solution # Example: us-central1 region = "REGION" # Whether or not to enable underlying apis in this solution. # Example: true enable_apis = true # Whether or not to protect BigQuery resources from deletion when solution is modified or changed. # Example: false force_destroy = false # Whether or not to protect Cloud Storage resources from deletion when solution is modified or changed. # Example: true deletion_protection = true # Name of the BigQuery ML GenAI remote model used for text generation # Example: "text_generate_model" text_generation_model_name = "text_generate_model"
Untuk mengetahui informasi tentang nilai yang dapat Anda tetapkan untuk variabel-variabel yang diperlukan, lihat berikut ini:
project_id
: Mengidentifikasi projectregion
: Region dan zona yang tersedia
Validasi dan meninjau konfigurasi Terraform
Pastikan direktori yang sedang bekerja adalah
$HOME/cloudshell_open/terraform-google-bigquery/modules/data_warehouse
. Jika bukan, buka direktori tersebut.Pastikan konfigurasi Terraform tidak terdapat error:
terraform validate
Jika perintah menunjukkan error, lakukan perbaikan yang diperlukan dalam konfigurasi kemudian jalankan kembali perintah
terraform validate
. Ulangi langkah ini hingga perintah menunjukkan pesan berikut:Success! The configuration is valid.
Tinjau resource yang ditentukan dalam konfigurasi:
terraform plan
Jika Anda tidak membuat file
terraform.tfvars
seperti yang dijelaskan sebelumnya, Terraform akan meminta Anda memasukkan nilai untuk variabel yang tidak memiliki nilai default. Masukkan nilai yang diperlukan.Output perintah
terraform plan
adalah daftar resource yang disediakan Terraform ketika Anda menerapkan konfigurasi.Jika Anda ingin melakukan perubahan, edit konfigurasi, kemudian jalankan kembali perintah
terraform validate
danterraform plan
.
Menyediakan resource
Jika tidak ada perubahan lebih lanjut yang diperlukan dalam konfigurasi Terraform, deploy resource.
Pastikan direktori yang sedang bekerja adalah
$HOME/cloudshell_open/terraform-google-bigquery/modules/data_warehouse
. Jika bukan, buka direktori tersebut.Terapkan konfigurasi Terraform:
terraform apply
Jika Anda tidak membuat file
terraform.tfvars
seperti yang dijelaskan sebelumnya, Terraform akan meminta Anda memasukkan nilai untuk variabel yang tidak memiliki nilai default. Masukkan nilai yang diperlukan.Terraform menampilkan daftar resource yang akan dibuat.
Ketika Anda diminta untuk melakukan tindakan, masukkan
yes
.Terraform menampilkan pesan yang menunjukkan progres deployment.
Jika deployment tidak dapat diselesaikan, Terraform akan menampilkan error yang menyebabkan kegagalan. Tinjau pesan error dan update konfigurasi untuk memperbaiki error. Kemudian jalankan kembali perintah
terraform apply
. Untuk bantuan terkait pemecahan masalah error Terraform, lihat Error ketika men-deploy solusi menggunakan Terraform CLI.Setelah semua resource dibuat, Terraform akan menampilkan pesan berikut:
Apply complete!
Output Terraform juga mencantumkan informasi tambahan berikut ini yang akan Anda perlukan:
- URL Looker Studio dasbor yang di-deploy.
- Link untuk membuka editor BigQuery untuk beberapa contoh kueri.
Contoh berikut ini menunjukkan tampilan output:
lookerstudio_report_url = "https://lookerstudio.google.com/reporting/create?c.reportId=8a6517b8-8fcd-47a2-a953-9d4fb9ae4794&ds.ds_profit.datasourceName=lookerstudio_report_profit&ds.ds_profit.projectId=my-cloud-project&ds.ds_profit.type=TABLE&ds.ds_profit.datasetId=ds_edw&ds.ds_profit.tableId=lookerstudio_report_profit&ds.ds_dc.datasourceName=lookerstudio_report_distribution_centers&ds.ds_dc.projectId=my-cloud-project&ds.ds_dc.type=TABLE&ds.ds_dc.datasetId=ds_edw&ds.ds_dc.tableId=lookerstudio_report_distribution_centers" bigquery_editor_url = "https://console.cloud.google.com/bigquery?project=my-cloud-project&ws=!1m5!1m4!6m3!1smy-cloud-project!2sds_edw!3ssp_sample_queries"
Untuk melihat dan menggunakan dasbor serta untuk menjalankan kueri di BigQuery, salin URL output dari langkah sebelumnya dan buka URL di tab browser baru.
Dasbor dan editor BigQuery akan muncul di tab baru.
Untuk melihat semua resource Google Cloud yang di-deploy, ikuti tur interaktif.
Ketika Anda tidak lagi memerlukan solusi tersebut, Anda dapat menghapus deployment untuk menghindari penagihan berkelanjutan untuk resource Google Cloud tersebut. Untuk mengetahui informasi selengkapnya, lihat Menghapus deployment.
Menyesuaikan solusi
Bagian ini memberikan informasi yang dapat digunakan oleh developer Terraform untuk memodifikasi data warehouse menggunakan solusi BigQuery untuk memenuhi keperluan teknis dan bisnis mereka sendiri. Panduan di bagian ini hanya relevan jika Anda men-deploy solusi menggunakan Terraform CLI.
Setelah Anda mengetahui cara kerja solusi menggunakan data sampel, Anda mungkin ingin
mulai menggunakan data Anda sendiri. Untuk menggunakan data Anda sendiri, masukkan data tersebut ke dalam
bucket Cloud Storage dengan nama edw-raw-hash
. Hash
adalah sekumpulan karakter acak yang terdiri dari 8 karakter yang dihasilkan selama deployment. Anda
dapat mengubah kode Terraform dengan cara berikut
- ID Set Data. Ubah kode Terraform, sehingga saat kode membuat set data BigQuery, kode tersebut menggunakan ID set data yang ingin Anda gunakan untuk data Anda.
- Skema. Ubah kode Terraform untuk membuat I.D tabel BigQuery yang dapat Anda gunakan untuk menyimpan data Anda. Ini termasuk skema tabel eksternal sehingga BigQuery dapat membaca data dari Cloud Storage.
- Kueri terjadwal. Tambahkan prosedur tersimpan yang dapat melakukan analisis yang Anda minati.
- Looker dasbor. Ubah kode Terraform yang digunakan untuk membuat dasbor Looker agar dasbor tersebut mencerminkan data yang sedang Anda gunakan.
Berikut adalah objek data warehouse umum, yang menunjukkan kode contoh Terraform di main.tf
.
-
Set data BigQuery: Skema tempat objek database dikelompokkan dan disimpan.
resource "google_bigquery_dataset" "ds_edw" { project = module.project-services.project_id dataset_id = "DATASET_PHYSICAL_ID" friendly_name = "DATASET_LOGICAL_NAME" description = "DATASET_DESCRIPTION" location = "REGION" labels = var.labels delete_contents_on_destroy = var.force_destroy }
-
Tabel BigQuery: Objek database yang menunjukkan data yang tersimpan di BigQuery atau yang menunjukkan skema data yang tersimpan di Cloud Storage.
resource "google_bigquery_table" "tbl_edw_inventory_items" { dataset_id = google_bigquery_dataset.ds_edw.dataset_id table_id = "TABLE_NAME" project = module.project-services.project_id deletion_protection = var.deletion_protection ... }
-
Prosedur tersimpan BigQuery: Objek database yang menunjukkan satu atau beberapa pernyataan SQL yang akan dieksekusi saat dipanggil. Hal ini dapat gunakan untuk mengubah data dari satu tabel ke tabel yang lain atau untuk memuat data dari tabel eksternal ke tabel standar.
resource "google_bigquery_routine" "sp_sample_translation_queries" { project = module.project-services.project_id dataset_id = google_bigquery_dataset.ds_edw.dataset_id routine_id = "sp_sample_translation_queries" routine_type = "PROCEDURE" language = "SQL" definition_body = templatefile("${path.module}/assets/sql/sp_sample_translation_queries.sql", { project_id = module.project-services.project_id }) }
-
Kueri terjadwal BigQuery: Utilitas untuk menjadwalkan kueri atau prosedur tersimpan untuk dijalankan pada frekuensi yang ditetapkan.
resource "google_bigquery_data_transfer_config" "dts_config" { display_name = "TRANSFER_NAME" project = module.project-services.project_id location = "REGION" data_source_id = "scheduled_query" schedule = "every day 00:00" params = { query = "CALL
${module.project-services.project_id}.ds_edw.sp_lookerstudio_report
()" } }
Untuk menyesuaikan solusi, selesaikan langkah-langkah berikut di Cloud Shell:
Pastikan direktori kerja saat ini adalah
$HOME/cloudshell_open/terraform-google-bigquery/modules/data_warehouse
. Jika tidak, buka direktori tersebut:cd $HOME/cloudshell_open/terraform-google-bigquery/modules/data_warehouse
Buka
main.tf
dan lakukan perubahan yang ingin Anda buat.Untuk mengetahui informasi selengkapnya tentang efek penyesuaian tersebut terhadap keandalan, keamanan, performa, biaya, dan operasi, lihat Rekomendasi desain.
Rekomendasi desain
Bagian ini berisi rekomendasi penggunaan data warehouse dengan solusi BigQuery untuk mengembangkan arsitektur yang memenuhi kebutuhan Anda akan keamanan, keandalan, biaya, dan performa.
Saat mulai menskalakan dengan BigQuery, Anda memiliki sejumlah cara untuk meningkatkan performa kueri dan mengurangi total pengeluaran. Metode ini termasuk mengubah cara data Anda disimpan secara fisik, mengubah kueri SQL, dan menggunakan reservasi slot untuk memastikan performa biaya. Untuk mengetahui informasi selengkapnya tentang cara menskalakan dan menjalankan data warehouse, lihat Pengantar pengoptimalan performa kueri.
Perhatikan hal-hal berikut:
- Sebelum membuat perubahan desain apa pun, evaluasi dampak biaya dan pertimbangkan kemungkinan kompromi dengan fitur lain. Anda dapat menilai dampak biaya perubahan desain dengan menggunakan Kalkulator Harga Google Cloud.
- Untuk menerapkan perubahan desain dalam solusi tersebut, Anda memerlukan keahlian dalam coding Terraform dan pengetahuan tingkat lanjut tentang layanan Google Cloud yang digunakan pada solusi tersebut.
- Jika Anda mengubah konfigurasi Terraform yang disediakan Google, dan mengalami error, buat masalah di GitHub. Laporan masalah pada GitHub ditinjau berdasarkan upaya terbaik dan tidak ditujukan untuk pertanyaan umum.
- Untuk mengetahui informasi selengkapnya tentang merancang dan menyiapkan lingkungan ingkat produksi di Google Cloud, lihat Desain zona landing di Google Cloud dan Checklist penyiapan Google Cloud.
Menghapus deployment
Jika Anda tidak lagi memerlukan deployment solusi, hapus deployment tersebut untuk menghindari penagihan berkelanjutan pada resource yang Anda buat.
Menghapus melalui konsol
Gunakan prosedur ini jika Anda men-deploy solusi melalui konsol.
Pada Konsol Google Cloud, buka halaman Deployment solusi.
Pilih project berisi deployment yang ingin Anda hapus.
Cari deployment yang ingin Anda hapus.
Klik Tindakan
, lalu pilih Hapus.Masukkan nama deployment, lalu klik Konfirmasi.
Kolom Status menampilkan Menghapus.
Jika penghapusan gagal, lihat panduan pemecahan masalah pada bagian Error saat menghapus deployment.
Jika tidak lagi memerlukan project Google Cloud yang digunakan untuk solusi, Anda dapat menghapus project tersebut. Untuk informasi selengkapnya, lihat Opsional: Menghapus project
Menghapus menggunakan Terraform CLI
Gunakan prosedur ini jika Anda men-deploy solusi menggunakan Terraform CLI.
Di Cloud Shell, pastikan direktori kerja saat ini adalah
$HOME/cloudshell_open/terraform-google-bigquery/modules/data_warehouse
. Jika bukan, buka direktori tersebut.Hapus resource yang disediakan oleh Terraform:
terraform destroy
Terraform menampilkan daftar resource yang akan dimusnahkan.
Ketika Anda diminta untuk melakukan tindakan, masukkan
yes
.Terraform menampilkan pesan yang menunjukkan progres. Setelah semua resource dihapus, Terraform akan menampilkan pesan berikut:
Destroy complete!
Jika penghapusan gagal, lihat panduan pemecahan masalah pada bagian Error saat menghapus deployment.
Jika tidak lagi memerlukan project Google Cloud yang digunakan untuk solusi, Anda dapat menghapus project tersebut. Untuk informasi selengkapnya, lihat Opsional: Menghapus project
Opsional: Menghapus project
Jika Anda men-deploy solusi di project Google Cloud baru, dan tidak lagi memerlukan project tersebut, hapus dengan melakukan langkah-langkah berikut:
- Pada Konsol Google Cloud, buka halaman Kelola resource
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Hapus.
- Pada layar perintah, ketik project ID, lalu klik Matikan.
Jika Anda memutuskan untuk mempertahankan project, hapus akun layanan yang dibuat untuk solusi ini, seperti yang akan dijelaskan pada bagian selanjutnya.
Opsional: Menghapus akun layanan
Jika Anda menghapus project yang digunakan untuk solusi tersebut, lewati bagian ini.
Seperti yang telah disebutkan dalam panduan ini, ketika men-deploy solusi, akun layanan akan dibuat atas nama Anda. Akun layanan telah diberi izin IAM tertentu untuk sementara; yaitu, izin yang otomatis dicabut setelah operasi deployment dan penghapusan solusi selesai, tetapi akun layanan tidak dihapus. Google merekomendasikan agar Anda menghapus akun layanan ini.
Jika Anda men-deploy solusi melalui Konsol Google Cloud, buka halaman Deployment solusi. (Jika Anda sudah berada di halaman tersebut, muat ulang browser.) Proses terpicu di latar belakang untuk menghapus akun layanan. Tidak ada tindakan lebih lanjut yang diperlukan.
Jika Anda men-deploy solusi menggunakan Terraform CLI, lakukan langkah-langkah berikut:
Di Konsol Google Cloud, buka halaman Service accounts.
Pilih project yang Anda gunakan untuk solusi tersebut.
Pilih akun layanan yang ingin Anda hapus.
ID email akun layanan yang digunakan untuk membuat solusi menggunakan format berikut:
goog-sc-DEPLOYMENT_NAME-NNN@PROJECT_ID.iam.gserviceaccount.com
ID email berisi nilai-nilai berikut:
- DEPLOYMENT_NAME: nama deployment.
- NNN: 3 digit angka acak.
- PROJECT_ID: ID project tempat Anda men-deploy solusi.
Klik Delete.
Memecahkan masalah error
Tindakan yang dapat Anda lakukan untuk mendiagnosis dan mengatasi error bergantung pada metode deployment dan kompleksitas error.
Error ketika men-deploy melalui konsol
Jika deployment gagal saat Anda menggunakan konsol, lakukan hal-hal berikut:
Buka halaman Deployment solusi.
Jika deployment gagal, kolom Status akan menampilkan Gagal.
Lihat detail error yang menyebabkan kegagalan:
Klik
Tindakan.Pilih Lihat log Cloud Build.
Tinjau log Cloud Build dan ambil tindakan yang sesuai untuk menyelesaikan masalah yang menyebabkan kegagalan.
Error ketika men-deploy menggunakan Terraform CLI
Jika deployment gagal saat Anda menggunakan Terraform, output perintah terraform
apply
akan menyertakan pesan error yang dapat Anda tinjau untuk mendiagnosis
masalah.
Pada bagian berikut ditunjukkan contoh error deployment yang mungkin Anda alami saat menggunakan Terraform.
Error API dinonaktifkan
Jika Anda membuat project dan segera mencoba men-deploy solusi di project baru, deployment mungkin akan gagal dengan error seperti berikut:
Error: Error creating Network: googleapi: Error 403: Compute Engine API has not
been used in project PROJECT_ID before or it is disabled. Enable it by visiting
https://console.developers.google.com/apis/api/compute.googleapis.com/overview?project=PROJECT_ID
then retry. If you enabled this API recently, wait a few minutes for the action
to propagate to our systems and retry.
Jika error ini terjadi, tunggu beberapa menit, lalu jalankan terraform apply
kembali perintah.
Error tidak dapat menetapkan alamat yang diminta
Ketika Anda menjalankan perintah terraform apply
, error cannot assign requested address
mungkin saja terjadi, dengan pesan seperti berikut:
Error: Error creating service account:
Post "https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts:
dial tcp [2001:db8:ffff:ffff::5f]:443:
connect: cannot assign requested address
Jika terjadi error ini, jalankan kembali perintah terraform apply
.
Error saat mengakses data di BigQuery atau Looker Studio
Ada langkah penyediaan yang berjalan setelah langkah penyediaan Terraform yang memuat data ke lingkungan. Jika Anda mendapatkan error saat data sedang dimuat ke dasbor Looker Studio, atau jika tidak ada objek saat Anda mulai menjelajahi BigQuery, tunggu beberapa menit dan coba lagi.
Error saat menghapus deployment
Dalam kasus tertentu, upaya untuk menghapus deployment mungkin akan gagal:
- Jika Anda mengubah resource yang disediakan oleh solusi setelah men-deploy solusi melalui konsol, lalu Anda mencoba menghapus deployment, penghapusan mungkin akan gagal. Kolom Status pada halaman Deployment solusi akan menampilkan Gagal, dan log Cloud Build akan menunjukkan penyebab error.
- Jika Anda mengubah resource dengan menggunakan antarmuka non-Terraform (misalnya, konsol)
setelah men-deploy solusi menggunakan
Terraform CLI, kemudian Anda mencoba menghapus deployment,
penghapusan mungkin akan gagal. Pesan dalam output perintah
terraform destroy
menunjukkan penyebab error.
Tinjau log dan pesan error serta identifikasi dan hapus resource yang menyebabkan error tersebut. Setelah itu, coba hapus kembali deployment.
Jika deployment berbasis konsol tidak dapat dihapus dan Anda tidak dapat mendiagnosis error menggunakan log Cloud Build, Anda dapat menghapus deployment tersebut menggunakan Terraform CLI yang akan dijelaskan pada bagian berikutnya.
Menghapus deployment berbasis konsol menggunakan Terraform CLI
Bagian ini menjelaskan cara menghapus deployment berbasis konsol jika terjadi error saat Anda mencoba menghapusnya melalui konsol. Dalam pendekatan ini, Anda perlu mendownload konfigurasi Terraform untuk deployment yang ingin dihapus, lalu gunakan Terraform CLI untuk menghapus deployment tersebut.
Identifikasi region tempat kode Terraform, log, dan data deployment lainnya disimpan. Region ini mungkin berbeda dari region yang Anda pilih ketika men-deploy solusi.
Pada Konsol Google Cloud, buka halaman Deployment solusi.
Pilih project berisi deployment yang ingin Anda hapus.
Dalam daftar deployment, identifikasi baris deployment yang ingin Anda hapus.
Klik
Lihat semua konten baris.Pada kolom Lokasi, catat lokasi kedua seperti yang ditandai dalam contoh berikut:
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
Membuat variabel lingkungan untuk project ID, region, dan nama deployment yang ingin Anda hapus:
export REGION="REGION" export PROJECT_ID="PROJECT_ID" export DEPLOYMENT_NAME="DEPLOYMENT_NAME"
Dalam perintah ini, ganti kode berikut:
- REGION: lokasi yang Anda catat sebelumnya dalam prosedur ini.
- PROJECT_ID: ID project tempat Anda men-deploy solusi.
- DEPLOYMENT_NAME: nama deployment yang ingin Anda hapus.
Dapatkan ID revisi deployment terbaru yang ingin Anda hapus:
export REVISION_ID=$(curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}" \ | jq .latestRevision -r) echo $REVISION_ID
Outputnya mirip dengan hal berikut ini:
projects/PROJECT_ID/locations/REGION/deployments/DEPLOYMENT_NAME/revisions/r-0
Dapatkan lokasi Cloud Storage dari konfigurasi Terraform untuk deployment:
export CONTENT_PATH=$(curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1alpha2/${REVISION_ID}" \ | jq .applyResults.content -r) echo $CONTENT_PATH
Berikut adalah contoh output dari perintah ini:
gs://PROJECT_ID-REGION-blueprint-config/DEPLOYMENT_NAME/r-0/apply_results/content
Download konfigurasi Terraform dari Cloud Storage ke Cloud Shell:
gsutil cp -r $CONTENT_PATH $HOME cd $HOME/content/modules/data_warehouse
Tunggu hingga pesan
Operation completed
ditampilkan, seperti yang ditunjukkan dalam contoh berikut:Operation completed over 45 objects/268.5 KiB
Lakukan inisialisasi Terraform:
terraform init
Tunggu hingga Anda melihat pesan berikut:
Terraform has been successfully initialized!
Menghapus resource yang di-deploy:
terraform destroy
Terraform menampilkan daftar resource yang akan dimusnahkan.
Jika muncul peringatan tentang variabel yang tidak dideklarasikan, abaikan peringatan tersebut.
Ketika Anda diminta untuk melakukan tindakan, masukkan
yes
.Terraform menampilkan pesan yang menunjukkan progres. Setelah semua resource dihapus, Terraform akan menampilkan pesan berikut:
Destroy complete!
Menghapus artefak deployment:
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}?force=true&delete_policy=abandon"
Tunggu beberapa detik, lalu verifikasi bahwa artefak deployment telah dihapus:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}" \ | jq .error.message
Jika output menampilkan
null
, tunggu beberapa detik, lalu jalankan kembali perintah.Setelah artefak deployment dihapus, pesan seperti yang ditunjukkan pada contoh yang ditampilkan berikut ini:
Resource 'projects/PROJECT_ID/locations/REGION/deployments/DEPLOYMENT_NAME' was not found
Mengirim masukan
Solusi Praktis hanya untuk keperluan informasi dan bukan produk yang didukung secara resmi. Google dapat mengubah atau menghapus solusi tanpa pemberitahuan.
Untuk memecahkan masalah error, tinjau log Cloud Build dan output Terraform.
Untuk mengirim masukan, lakukan hal-hal berikut:
- Untuk dokumentasi, tutorial dalam konsol, atau solusi, gunakan tombol Kirim Masukan pada halaman tersebut.
- Untuk kode Terraform yang tidak dimodifikasi, buat laporan masalah di Repositori GitHub. Laporan masalah pada GitHub ditinjau berdasarkan upaya terbaik dan tidak ditujukan untuk pertanyaan umum.
- Untuk masalah terkait produk yang digunakan dalam solusi, hubungi Cloud Customer Care.