Alur analitik untuk database berorientasi kolom

Pengantar NoSQL

Jake Roach

Data Engineer

Common table expression dengan Snowflake

Common table expressions (CTE):

  • Subkueri/tabel sementara bernama, didefinisikan dengan kata kunci WITH
  • Membuat objek yang dapat dikueri kemudian
  • Mengurangi data yang dikueri dan/atau di-JOIN
  • Lebih modular, lebih mudah ditelusuri
WITH <cte-name> AS (
    SELECT
        ....
    FROM <table-name>
    [JOIN | WHERE | ...]
)

SELECT
    ...
FROM <cte-name>;
1 https://docs.snowflake.com/en/user-guide/queries-cte
Pengantar NoSQL

Menulis common table expression

WITH premium_books AS (
    SELECT
        title,
        author,
        avg_reviews
    FROM books
    WHERE price > 25.00
)
SELECT
    author,
    MIN(avg_reviews) AS min_avg_reviews,
    MAX(avg_reviews) AS max_avg_reviews
FROM premium_books
GROUP BY author;
  • Membuat objek sementara premium_books
  • Menggunakan premium_books di langkah berikutnya

$$

Dapat membuat beberapa objek sementara:

WITH 
    <first-name> AS (...),
    <second-name> AS (...),
    ...
...
;
Pengantar NoSQL

View dengan Snowflake

View:

  • Mengakses hasil kueri seperti tabel
  • Non-materialized dan materialized
CREATE VIEW <view-name> AS
  SELECT
      ...
  FROM <table-name>
  [WHERE | JOIN | ...];
Pengantar NoSQL

Membuat view dengan Snowflake

CREATE VIEW premium_books AS
    SELECT
        title,
        author,
        avg_reviews
    FROM books
    WHERE price >= 25.00;
SELECT * FROM premium_books;
  • Kueri dieksekusi saat premium_books dipanggil
  • “Definisi bernama” dari sebuah kueri
CREATE MATERIALIZED VIEW premium_books AS
    SELECT
        title,
        author,
        avg_reviews
    FROM books
    WHERE price >= 25.00;
SELECT * FROM premium_books;
  • Hasil disimpan saat eksekusi
  • Performa kueri lebih baik, perlu penyegaran
Pengantar NoSQL

Ayo berlatih!

Pengantar NoSQL

Preparing Video For Download...