arrow_back

Membuat Tabel Berpartisi Tanggal di BigQuery

Login Gabung
Dapatkan akses ke 700+ lab dan kursus

Membuat Tabel Berpartisi Tanggal di BigQuery

Lab 1 jam universal_currency_alt 5 Kredit show_chart Menengah
info Lab ini mungkin menggabungkan alat AI untuk mendukung pembelajaran Anda.
Dapatkan akses ke 700+ lab dan kursus

GSP414

Logo lab mandiri Google Cloud

Ringkasan

BigQuery adalah database analisis berbiaya rendah dan tanpa pengoperasian (NoOps) yang dikelola sepenuhnya oleh Google. Dengan BigQuery, Anda dapat mengkueri data berskala terabyte tanpa perlu mengelola infrastruktur atau memiliki administrator database. BigQuery menggunakan SQL dan memanfaatkan model bayar sesuai penggunaan. Dengan BigQuery, Anda dapat berfokus menganalisis data untuk menemukan insight yang bermakna.

Di lab ini, Anda akan mempelajari cara mengkueri dan membuat tabel berpartisi di BigQuery untuk meningkatkan performa kueri dan mengurangi penggunaan resource. Data di lab ini merupakan set data e-commerce yang memiliki jutaan data Google Analytics untuk Google Merchandise Store yang dimuat ke BigQuery.

Yang akan Anda lakukan

Di lab ini, Anda akan mempelajari cara:

  • Mengkueri tabel berpartisi.
  • Membuat tabel berpartisi Anda sendiri.

Penyiapan dan persyaratan

Sebelum mengklik tombol Start Lab

Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer yang dimulai saat Anda mengklik Start Lab akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.

Lab interaktif ini dapat Anda gunakan untuk melakukan aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.

Untuk menyelesaikan lab ini, Anda memerlukan:

  • Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran (direkomendasikan) atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
  • Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Hanya gunakan akun siswa untuk lab ini. Jika Anda menggunakan akun Google Cloud yang berbeda, Anda mungkin akan dikenai tagihan ke akun tersebut.

Cara memulai lab dan login ke Google Cloud Console

  1. Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran. Di sebelah kiri ada panel Lab Details yang berisi hal-hal berikut:

    • Tombol Open Google Cloud console
    • Waktu tersisa
    • Kredensial sementara yang harus Anda gunakan untuk lab ini
    • Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
  2. Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).

    Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.

    Tips: Atur tab di jendela terpisah secara berdampingan.

    Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
  3. Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.

    {{{user_0.username | "Username"}}}

    Anda juga dapat menemukan Username di panel Lab Details.

  4. Klik Next.

  5. Salin Password di bawah dan tempel ke dialog Welcome.

    {{{user_0.password | "Password"}}}

    Anda juga dapat menemukan Password di panel Lab Details.

  6. Klik Next.

    Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda. Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan.
  7. Klik halaman berikutnya:

    • Setujui persyaratan dan ketentuan.
    • Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
    • Jangan mendaftar uji coba gratis.

Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.

Catatan: Untuk mengakses produk dan layanan Google Cloud, klik Navigation menu atau ketik nama layanan atau produk di kolom Search. Ikon Navigation menu dan kolom Search

Membuka konsol BigQuery

  1. Di Konsol Google Cloud, pilih Navigation menu > BigQuery.

Kotak pesan Welcome to BigQuery in the Cloud Console akan terbuka. Kotak pesan ini menyediakan link ke panduan memulai dan catatan rilis.

  1. Klik Done.

Konsol BigQuery terbuka.

Tugas 1. Membuat set data baru

  1. Pertama, Anda akan membuat set data untuk menyimpan tabel Anda.

  2. Di panel Explorer, di dekat project ID Anda, klik View actions, lalu klik Create dataset.

Opsi Create dataset disorot dalam menu dropdown project.

  1. Tetapkan Dataset ID ke ecommerce.

Gunakan nilai default untuk opsi lainnya (Data Location, Default table Expiration).

  1. Klik Create dataset.

Klik Periksa progres saya untuk memverifikasi tujuan.

Membuat set data bernama e-commerce

Tugas 2. Membuat tabel dengan partisi tanggal

Tabel berpartisi adalah tabel yang dibagi menjadi beberapa segmen yang disebut partisi, yang akan mempermudah pengelolaan dan kueri data Anda. Dengan membagi tabel besar menjadi beberapa partisi yang lebih kecil, Anda dapat meningkatkan performa kueri dan mengontrol biaya dengan mengurangi jumlah byte yang dibaca oleh kueri.

Sekarang, buat tabel baru dan ikat kolom tanggal atau stempel waktu sebagai partisi. Sebelum melakukannya, mari kita pelajari data di tabel yang tidak berpartisi.

Mengkueri analisis halaman web untuk sampel pengunjung pada tahun 2017

  1. Klik + SQL query, lalu tambahkan kueri di bawah:
#standardSQL SELECT DISTINCT fullVisitorId, date, city, pageTitle FROM `data-to-insights.ecommerce.all_sessions_raw` WHERE date = '20170708' LIMIT 5

Sebelum menjalankan kueri, perhatikan jumlah total data yang akan diproses seperti yang ditunjukkan di sebelah ikon validator kueri: "This query will process 1.74 GB when run" ("Kueri ini akan memproses 1,74 GB data saat dijalankan").

  1. Klik Run.

Kueri akan menampilkan 5 hasil.

Mengkueri analisis halaman web untuk sampel pengunjung pada tahun 2018

Mari sekarang kita ubah kueri untuk melihat pengunjung pada tahun 2018.

  1. Klik + SQL query untuk menghapus Query Editor, lalu tambahkan kueri baru ini. Perhatikan bahwa parameter WHERE date berubah menjadi 20180708:
#standardSQL SELECT DISTINCT fullVisitorId, date, city, pageTitle FROM `data-to-insights.ecommerce.all_sessions_raw` WHERE date = '20180708' LIMIT 5

Query Validator memberi tahu Anda berapa banyak data yang akan diproses kueri ini.

  1. Klik Run.

Perhatikan bahwa kueri masih memproses 1,74 GB meskipun menampilkan 0 hasil. Mengapa demikian? Mesin kueri perlu memindai semua data di set data untuk melihat apakah data tersebut memenuhi kondisi pencocokan tanggal di klausa WHERE. Mesin tersebut harus memeriksa setiap data untuk membandingkan tanggal dengan kondisi ‘20180708'.

Sebagai tambahan, LIMIT 5 tidak mengurangi jumlah total data yang diproses, yang merupakan miskonsepsi umum.

Kasus penggunaan umum untuk tabel berpartisi tanggal

Memindai seluruh set data setiap saat untuk membandingkan baris dengan kondisi WHERE adalah tindakan yang sia-sia. Hal ini terutama berlaku jika Anda hanya memperhatikan data dalam periode waktu tertentu seperti:

  • Semua transaksi selama setahun terakhir
  • Semua interaksi pengunjung dalam 7 hari terakhir
  • Semua produk yang terjual bulan lalu

Daripada memindai seluruh set data dan memfilter kolom tanggal seperti yang dilakukan pada kueri sebelumnya, sekarang siapkan tabel yang berpartisi tanggal. Hal ini memungkinkan Anda untuk sepenuhnya mengabaikan pemindaian data di partisi tertentu jika tidak relevan dengan kueri kami.

Membuat tabel berpartisi baru berdasarkan tanggal

  1. Klik + SQL query, tambahkan kueri di bawah, lalu klik Run:
#standardSQL CREATE OR REPLACE TABLE ecommerce.partition_by_day PARTITION BY date_formatted OPTIONS( description="a table partitioned by date" ) AS SELECT DISTINCT PARSE_DATE("%Y%m%d", date) AS date_formatted, fullvisitorId FROM `data-to-insights.ecommerce.all_sessions_raw`

Di kueri ini, perhatikan opsi baru - PARTITION BY a field. Dua opsi yang tersedia untuk partisi adalah DATE dan TIMESTAMP. Fungsi PARSE_DATE digunakan pada kolom tanggal (disimpan sebagai string) guna mengubahnya dengan jenis DATE yang tepat untuk partisi.

  1. Klik set data ecommerce, lalu pilih tabel partiton_by_day baru:

opsi tabel partiton_by_day disorot

  1. Klik tab Detail.

Pastikan Anda melihat:

  • Partitioned by: Day
  • Partitioning on: date_formatted

Detail partiton_by_day

Catatan: Partisi dalam tabel yang dipartisi di akun lab Anda akan secara otomatis habis masa berlakunya 60 hari setelah nilai di kolom tanggal Anda. Akun Google Cloud pribadi Anda dengan penagihan diaktifkan memungkinkan Anda memiliki tabel berpartisi yang tidak memiliki tanggal habis masa berlaku. Untuk tujuan lab ini, kueri yang tersisa akan dijalankan terhadap tabel berpartisi yang sudah dibuat.

Klik Periksa progres saya untuk memverifikasi tujuan.

Membuat tabel berpartisi baru berdasarkan tanggal

Tugas 3. Meninjau hasil dari kueri tabel berpartisi

  1. Jalankan kueri di bawah ini, dan catat total byte yang akan diproses:
#standardSQL SELECT * FROM `data-to-insights.ecommerce.partition_by_day` WHERE date_formatted = '2016-08-01'

Kali ini, 25 KB atau 0,025 MB sedang diproses, yang merupakan sebagian kecil dari apa yang telah Anda kueri.

  1. Sekarang jalankan kueri di bawah, dan catat total byte yang akan diproses:
#standardSQL SELECT * FROM `data-to-insights.ecommerce.partition_by_day` WHERE date_formatted = '2018-07-08'

Anda akan melihat This query will process 0 B when run.

Tugas 4. Membuat tabel berpartisi yang secara otomatis habis masa berlakunya

Tabel berpartisi yang secara otomatis habis masa berlakunya digunakan untuk mematuhi undang-undang privasi data, dan dapat digunakan untuk menghindari penyimpanan yang tidak diperlukan (yang akan dikenai biaya di lingkungan produksi). Jika Anda ingin membuat rolling window data, tambahkan tanggal habis masa berlaku sehingga partisi tersebut menghilang setelah Anda selesai menggunakannya.

Mempelajari tabel data cuaca NOAA yang tersedia

  1. Pada menu kiri, di Explorer, klik + Add data lalu pilih Public datasets.

Menu add data, yang mencakup Explore public datasets, Pin a project, dan External data source.

  1. Cari GSOD NOAA lalu pilih set data.

  2. Klik View Dataset.

  3. Scroll tabel di set data noaa_gsod (yang di-sharding secara manual dan tidak dipartisi):

Set data noaa_gsod disorot

Tujuan Anda adalah membuat tabel yang:

  • Mengkueri data cuaca dari tahun 2018 dan seterusnya
  • Memfilter sehingga hanya menyertakan hari dengan curah hujan (hujan, salju, dll.)
  • Hanya menyimpan setiap partisi data selama 90 hari sejak tanggal partisi (rolling window)
  1. Pertama, salin dan tempel kueri bawah ini:
#standardSQL SELECT DATE(CAST(year AS INT64), CAST(mo AS INT64), CAST(da AS INT64)) AS date, (SELECT ANY_VALUE(name) FROM `bigquery-public-data.noaa_gsod.stations` AS stations WHERE stations.usaf = stn) AS station_name, -- Stations may have multiple names prcp FROM `bigquery-public-data.noaa_gsod.gsod*` AS weather WHERE prcp < 99.9 -- Filter unknown values AND prcp > 0 -- Filter stations/days with no precipitation AND _TABLE_SUFFIX >= '2018' ORDER BY date DESC -- Where has it rained/snowed recently LIMIT 10 Catatan: Karakter pengganti tabel * digunakan di klausa FROM untuk membatasi jumlah tabel yang tertera dalam filter TABLE_SUFFIX. Catatan: Meskipun LIMIT 10 ditambahkan, hal ini tetap tidak mengurangi jumlah total data yang dipindai (sekitar 1,83 GB) karena belum ada partisi.
  1. Klik Run.

  2. Pastikan tanggal diformat dengan tepat dan kolom curah hujan menunjukkan nilai yang bukan nol.

Tugas 5. Giliran Anda: membuat tabel berpartisi

  • Ubah kueri sebelumnya untuk membuat tabel dengan spesifikasi di bawah ini:

    • Nama tabel: ecommerce.days_with_rain
    • Gunakan kolom tanggal sebagai PARTITION BY Anda
    • Untuk OPTIONS, tentukan partition_expiration_days = 60
    • Tambahkan deskripsi tabel = "weather stations with precipitation, partitioned by day"

Kueri Anda akan terlihat seperti ini:

#standardSQL CREATE OR REPLACE TABLE ecommerce.days_with_rain PARTITION BY date OPTIONS ( partition_expiration_days=60, description="weather stations with precipitation, partitioned by day" ) AS SELECT DATE(CAST(year AS INT64), CAST(mo AS INT64), CAST(da AS INT64)) AS date, (SELECT ANY_VALUE(name) FROM `bigquery-public-data.noaa_gsod.stations` AS stations WHERE stations.usaf = stn) AS station_name, -- Stations may have multiple names prcp FROM `bigquery-public-data.noaa_gsod.gsod*` AS weather WHERE prcp < 99.9 -- Filter unknown values AND prcp > 0 -- Filter AND _TABLE_SUFFIX >= '2018'

Klik Periksa progres saya untuk memverifikasi tujuan.

Giliran Anda: Membuat Tabel Berpartisi

Pastikan masa berlaku partisi data berfungsi

Untuk memastikan Anda hanya menyimpan data dari 60 hari yang lalu hingga hari ini, jalankan kueri DATE_DIFF untuk melihat usia partisi, yang akan habis masa berlakunya setelah 60 hari.

Di bawah ini terdapat kueri yang melacak rata-rata curah hujan untuk stasiun cuaca NOAA di Wakayama, Jepang yang memiliki curah hujan signifikan.

  • Tambahkan kueri ini dan jalankan:
#standardSQL # avg monthly precipitation SELECT AVG(prcp) AS average, station_name, date, CURRENT_DATE() AS today, DATE_DIFF(CURRENT_DATE(), date, DAY) AS partition_age, EXTRACT(MONTH FROM date) AS month FROM ecommerce.days_with_rain WHERE station_name = 'WAKAYAMA' #Japan GROUP BY station_name, date, today, month, partition_age ORDER BY date DESC; # most recent days first

Tugas 6. Mengonfirmasi bahwa partition_age terlama berusia 60 hari atau kurang

Update klausa ORDER BY untuk menunjukkan partisi terlama terlebih dahulu.

  • Tambahkan kueri ini dan jalankan:
#standardSQL # avg monthly precipitation SELECT AVG(prcp) AS average, station_name, date, CURRENT_DATE() AS today, DATE_DIFF(CURRENT_DATE(), date, DAY) AS partition_age, EXTRACT(MONTH FROM date) AS month FROM ecommerce.days_with_rain WHERE station_name = 'WAKAYAMA' #Japan GROUP BY station_name, date, today, month, partition_age ORDER BY partition_age DESC Catatan: Hasil akan bervariasi jika Anda menjalankan kembali kueri tersebut di masa mendatang, karena data cuaca dan partisi Anda terus diperbarui.

Selamat!

Anda telah berhasil membuat dan mengkueri tabel berpartisi di BigQuery.

Langkah berikutnya/Pelajari lebih lanjut

Sertifikasi dan pelatihan Google Cloud

...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.

Manual Terakhir Diperbarui pada 29 April 2025

Lab Terakhir Diuji pada 29 April 2025

Hak cipta 2025 Google LLC. Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.

Sebelum memulai

  1. Lab membuat project dan resource Google Cloud untuk jangka waktu tertentu
  2. Lab memiliki batas waktu dan tidak memiliki fitur jeda. Jika lab diakhiri, Anda harus memulainya lagi dari awal.
  3. Di kiri atas layar, klik Start lab untuk memulai

Gunakan penjelajahan rahasia

  1. Salin Nama Pengguna dan Sandi yang diberikan untuk lab tersebut
  2. Klik Open console dalam mode pribadi

Login ke Konsol

  1. Login menggunakan kredensial lab Anda. Menggunakan kredensial lain mungkin menyebabkan error atau dikenai biaya.
  2. Setujui persyaratan, dan lewati halaman resource pemulihan
  3. Jangan klik End lab kecuali jika Anda sudah menyelesaikan lab atau ingin mengulanginya, karena tindakan ini akan menghapus pekerjaan Anda dan menghapus project

Konten ini tidak tersedia untuk saat ini

Kami akan memberi tahu Anda melalui email saat konten tersedia

Bagus!

Kami akan menghubungi Anda melalui email saat konten tersedia

Satu lab dalam satu waktu

Konfirmasi untuk mengakhiri semua lab yang ada dan memulai lab ini

Gunakan penjelajahan rahasia untuk menjalankan lab

Gunakan jendela Samaran atau browser pribadi untuk menjalankan lab ini. Langkah ini akan mencegah konflik antara akun pribadi Anda dan akun Siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.