Pernyataan Data Manipulation Language (DML)

Pengantar BigQuery

Matt Forrest

Field CTO

Ringkasan manipulasi data di BigQuery

  • INSERT: Menambahkan baris data baru.
  • UPDATE: Mengubah nilai yang ada di baris.
  • DELETE: Menghapus data yang tidak diinginkan dari tabel.
  • MERGE: Menggabungkan INSERT, UPDATE, dan DELETE dalam satu pernyataan.
  • CREATE TABLE AS: Membuat tabel baru dari hasil kueri.
Pengantar BigQuery

Pertimbangan dan kinerja

  • Gabungkan pernyataan DML bila mungkin daripada menjalankannya satu per satu
  • Gunakan kondisi WHERE saat menjalankan UPDATE
  • Pertimbangkan partisi dan klaster tabel
1 https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language
Pengantar BigQuery

INSERT

  • Menambahkan rekaman ke tabel
-- Tentukan kolom di dalam tanda kurung 
INSERT INTO customers (customer_id, name, email)

-- Setiap nilai adalah satu baris yang akan disisipkan
VALUES (1, "John Doe", "[email protected]"),
(2, "Jane Doe", "[email protected]"),
(3, "Alice Smith", "[email protected]");
Pengantar BigQuery

UPDATE

  • Mengubah data berdasarkan kondisi
UPDATE customers
-- Setel satu kolom untuk setiap pernyataan SET
SET email = "[email protected]"
-- Pastikan menyertakan WHERE, jika tidak
-- semua baris akan diperbarui
WHERE customer_id = 1;
  • UPDATE dengan subkueri atau join
    UPDATE customers c
    SET c.email = e.email
    FROM emails e
    WHERE c.customer_id = 1;
    
Pengantar BigQuery

DELETE

  • DELETE menghapus rekaman secara permanen dan tidak dapat dibatalkan
DELETE FROM customers

-- Sertakan WHERE agar hanya baris tertentu yang dihapus
WHERE customer_id = 3;
DELETE FROM customers c
JOIN emails e USING (customer_id)
WHERE email = '[email protected]'
Pengantar BigQuery

MERGE

  • Menggabungkan INSERT, UPDATE, dan DELETE dalam satu operasi
-- Menetapkan tabel customers sebagai target
MERGE customers AS target

-- Sumber ditetapkan ke new_customers USING new_customers AS source
-- Kondisi pencocokan ON target.customer_id = source.customer_id
-- Jika email tidak cocok, perbarui email WHEN MATCHED AND target.email != source.email THEN UPDATE SET email = source.email
-- Jika tidak ada kecocokan, sisipkan rekaman WHEN NOT MATCHED THEN INSERT (customer_id, name, email) VALUES (source.customer_id, source.name, source.email);
Pengantar BigQuery

CREATE TABLE

  • Membuat tabel baru dari kueri
CREATE TABLE active_customers AS
SELECT customer_id, name, email 
FROM customers
WHERE last_active_date > DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY);
Pengantar BigQuery

Ayo berlatih!

Pengantar BigQuery

Preparing Video For Download...