Bagikan melalui


Data tampilan metrik model

Halaman ini menjelaskan cara memodelkan tampilan metrik dan praktik terbaik untuk bekerja dengannya.

Tampilan metrik membantu membuat lapisan semantik untuk data Anda, mengubah tabel mentah menjadi metrik standar dan ramah bisnis. Mereka menentukan apa yang harus diukur, cara mengagregasinya, dan cara mensegmentasinya, memastikan bahwa setiap pengguna di seluruh organisasi melaporkan angka yang sama untuk Key Performance Indicator (KPI) yang sama. Tujuannya adalah untuk menciptakan satu sumber kebenaran untuk metrik bisnis.

Dengan memodelkan data Anda sebagai tampilan metrik, Anda mengabstraksi SQL yang kompleks, struktur tabel, dan masalah kualitas data, memungkinkan analis untuk fokus murni pada analisis.

Komponen inti

Pemodelan tampilan metrik melibatkan penentuan elemen berikut atas data sumber Anda:

Komponen Description Example
Sumber Tabel dasar, tampilan, atau kueri SQL yang berisi data transaksi mentah. samples.tpch.orders
Dimensi Atribut kolom yang digunakan untuk mengelompokkan atau membagi metrik. Kategori produk, Bulan pesanan, Wilayah pelanggan
Langkah Agregasi kolom yang menghasilkan metrik. Langkah-langkah inilah yang biasanya Anda laporkan. COUNT(o_order_id) sebagai Jumlah Pesanan, SUM(o_total_price) sebagai Total Pendapatan.
Filter Kondisi persisten diterapkan ke data sumber untuk menentukan cakupan.
  • status = 'completed'
  • order_date > '2024-01-01'

Menentukan sumber

Anda bisa menggunakan aset seperti tabel atau kueri SQL sebagai sumber untuk tampilan metrik Anda. Untuk menggunakan aset seperti tabel, Anda harus memiliki setidaknya SELECT hak istimewa pada aset.

Menggunakan tabel sebagai sumber

Untuk menggunakan tabel sebagai sumber, sertakan nama tabel yang sepenuhnya memenuhi syarat, seperti dalam contoh berikut.

source: samples.tpch.orders

Menggunakan kueri SQL sebagai sumber

Untuk menggunakan kueri SQL, tulis teks kueri langsung di YAML.

source: SELECT * FROM samples.tpch.orders o
  LEFT JOIN samples.tpch.customer c
  ON o.o_custkey = c.c_custkey

Nota

Saat menggunakan kueri SQL sebagai sumber dengan klausul JOIN, Databricks merekomendasikan menetapkan batasan kunci utama dan kunci asing pada tabel yang mendasar, serta menggunakan opsi RELY untuk performa optimal jika berlaku pada waktu kueri. Untuk informasi selengkapnya tentang menggunakan batasan kunci primer dan asing, lihat Mendeklarasikan kunci primer dan hubungan kunci asing dan Pengoptimalan kueri menggunakan batasan kunci utama.

Menggunakan tampilan metrik sebagai sumber

Anda juga dapat menggunakan tampilan metrik yang sudah ada sebagai sumber untuk tampilan metrik baru:

version: 1.1
source: views.examples.source_metric_view

dimensions:
  # Dimension referencing dimension from source_metric_view
  - name: Order date
    expr: order_date_dim

measures:
  # Measure referencing dimension from source_metric_view
  - name: Latest order month
    expr: MAX(order_date_dim_month)

  # Measure referencing measure from source_metric_view
  - name: Latest order year
    expr: DATE_TRUNC('year', MEASURE(max_order_date_measure))

Saat menggunakan tampilan metrik sebagai sumber, aturan komposabilitas yang sama berlaku untuk mereferensikan dimensi dan ukuran. Lihat Komposabilitas.

Dimensi

Dimensi adalah kolom yang digunakan dalam SELECT, WHERE, dan GROUP BY pada waktu kueri. Setiap ekspresi harus mengembalikan nilai skalar. Dimensi didefinisikan sebagai array. Setiap dimensi terdiri dari dua komponen:

  • name: Nama alias kolom.

  • expr: Ekspresi SQL pada data sumber yang menentukan dimensi atau dimensi yang ditentukan sebelumnya dalam tampilan metrik.

Nota

Mulai dari versi 1.1, Anda juga dapat menentukan metadata semantik (nama tampilan, format, dan sinonim) untuk setiap dimensi. Lihat Menggunakan metadata semantik dalam tampilan metrik untuk detailnya.

Tindakan

Ukuran adalah kolom yang didefinisikan sebagai array ekspresi yang menghasilkan hasil tanpa tingkat agregasi yang ditentukan sebelumnya. Mereka harus diekspresikan menggunakan fungsi agregat. Untuk mereferensikan pengukuran dalam kueri, Anda harus menggunakan fungsi .MEASURE Pengukuran dapat mereferensikan bidang dasar dalam data sumber atau dimensi yang ditentukan sebelumnya. Setiap ukuran terdiri dari komponen-komponen berikut:

  • name: Alias untuk pengukuran.

  • expr: Ekspresi SQL agregat yang dapat menyertakan fungsi agregat SQL.

Contoh berikut menunjukkan pola pengukuran umum:

measures:
  # Simple count measure
  - name: Order Count
    expr: COUNT(1)

  # Sum aggregation measure
  - name: Total Revenue
    expr: SUM(o_totalprice)

  # Distinct count measure
  - name: Unique Customers
    expr: COUNT(DISTINCT o_custkey)

  # Calculated measure combining multiple aggregations
  - name: Average Order Value
    expr: SUM(o_totalprice) / COUNT(DISTINCT o_orderkey)

  # Filtered measure with WHERE condition
  - name: High Priority Order Revenue
    expr: SUM(o_totalprice) FILTER (WHERE o_orderpriority = '1-URGENT')

  # Measure using a dimension
  - name: Average Revenue per Month
    expr: SUM(o_totalprice) / COUNT(DISTINCT DATE_TRUNC('MONTH', o_orderdate))

Lihat Fungsi agregat untuk daftar fungsi agregat.

Lihat fungsi agregat measure.

Nota

Mulai dari versi 1.1, Anda juga dapat menentukan metadata semantik (nama tampilan, format, dan sinonim) untuk setiap ukuran. Lihat Menggunakan metadata semantik dalam tampilan metrik untuk detailnya.

Menerapkan filter

Filter dalam definisi YAML dari tampilan metrik berlaku untuk semua kueri yang mereferensikannya. Ini harus ditulis sebagai ekspresi boolean SQL dan setara dengan menggunakan WHERE klausa dalam kueri SQL.

Contoh berikut menunjukkan pola filter umum:

# Single condition filter
filter: o_orderdate > '2024-01-01'

# Multiple conditions with AND
filter: o_orderdate > '2024-01-01' AND o_orderstatus = 'F'

# Multiple conditions with OR
filter: o_orderpriority = '1-URGENT' OR o_orderpriority = '2-HIGH'

# Complex filter with IN clause
filter: o_orderstatus IN ('F', 'P') AND o_orderdate >= '2024-01-01'

# Filter with NOT
filter: o_orderstatus != 'O' AND o_totalprice > 1000.00

# Filter with LIKE pattern matching
filter: o_comment LIKE '%express%' AND o_orderdate > '2024-01-01'

Anda juga bisa menambahkan filter saat mengkueri atau menggunakan tampilan metrik.

Kemampuan pemodelan tingkat lanjut

Pemodelan tampilan metrik mendukung teknik canggih untuk membuat metrik canggih dan sangat dapat digunakan kembali.

Joins

Gabungan memungkinkan Anda memperkaya tampilan metrik Anda dengan atribut deskriptif dari tabel terkait. Anda dapat menggunakan penggabungan untuk memodelkan hubungan dari tabel fakta ke tabel dimensi (skema bintang) dan untuk menelusuri dari dimensi ke subdimensi, memungkinkan penggabungan multi-langkah di seluruh tabel dimensi yang dinormalisasi (skema snowflake).

Lihat Menggunakan gabungan dalam tampilan metrik.

Ukuran jendela

Penting

Fitur ini bersifat Percobaan.

Metode pengukuran berjendela memungkinkan Anda menentukan pengukuran dengan agregasi berjendela, akumulatif, atau semi-aditif dalam tampilan metrik Anda. Langkah-langkah jenis ini memungkinkan perhitungan yang lebih kompleks, seperti rata-rata bergerak, perubahan antar periode, dan total kumulatif. Lihat Menggunakan pengukuran jendela dalam tampilan metrik untuk contoh yang menunjukkan cara menggunakan pengukuran jendela dalam tampilan metrik.

Komposabilitas

Tampilan metrik dapat disusun, memungkinkan Anda membangun logika kompleks dengan mereferensikan elemen yang ditentukan sebelumnya. Anda dapat merujuk dimensi yang sudah ditentukan dalam dimensi baru, merujuk dimensi apa pun atau ukuran yang telah ditentukan sebelumnya dalam ukuran baru, dan merujuk kolom dari join yang ditentukan dalam tampilan metrik.

Lihat Komposabilitas dalam tampilan metrik.

Metadata semantik

Metadata semantik membantu mengonsumsi alat memahami cara menampilkan dan memperlakukan ukuran dan dimensi. Ini termasuk properti seperti:

Metadata semantik Example
Nama tampilan Total Revenue bukan sum_o_price.
Format tampilan Menstandarkan pemformatan untuk mata uang, persentase, dan tanggal.
Komentar Jelaskan definisi bisnis metrik dalam bahasa alami.

Saat Anda menentukan metadata semantik, metadata tersebut akan berjalan dengan metrik. Misalnya, saat analis menggunakan Total Pendapatan di dasbor, itu secara otomatis ditampilkan sebagai mata uang.

Lihat Menggunakan metadata semantik dalam tampilan metrik.

Sintaks dan pemformatan YAML

Definisi tampilan metrik mengikuti sintaks notasi YAML standar. Lihat Referensi sintaks YAML untuk mempelajari tentang sintaks dan pemformatan yang diperlukan untuk menentukan tampilan metrik. Lihat dokumentasi SPESIFIKASI YAML 1.2.2 untuk mempelajari selengkapnya tentang spesifikasi YAML.

Ukuran jendela

Pengukuran jendela menghitung nilai melalui jendela yang telah ditentukan, atau rentang baris yang terkait dengan baris saat ini. Anda dapat menggunakan ukuran jendela untuk rangkaian waktu dan analisis komparatif, memungkinkan Anda menentukan metrik seperti:

  • Total Pendapatan Bergulir 30 Hari: Jumlah pendapatan selama 30 hari terakhir
  • Pendapatan Tahun Ini (YTD): Jumlah kumulatif dari awal tahun
  • Perbandingan Periode Sebelumnya: Pendapatan dari bulan sebelumnya

Lihat Menggunakan ukuran jendela dalam tampilan metrik.

Praktik terbaik untuk memodelkan tampilan metrik

Gunakan panduan berikut saat memodelkan tampilan metrik:

  • Langkah-langkah atom model: Mulailah dengan mendefinisikan langkah-langkah yang paling sederhana dan tidak dihitung terlebih dahulu (misalnya, SUM(revenue), COUNT(DISTINCT customer_id)). Bangun langkah-langkah kompleks (seperti AOV) menggunakan komposabilitas.
  • Standarisasi nilai dimensi: Gunakan transformasi (seperti CASE pernyataan atau ekspresi) untuk mengonversi kode database kriptik menjadi nama bisnis yang jelas (misalnya, mengonversi status pesanan 'O' menjadi 'Terbuka' dan 'F' menjadi 'Terpenuhi').
  • Tentukan cakupan dengan filter: Bersikap sengaja terhadap filter persisten. Jika tampilan metrik hanya boleh menyertakan pesanan yang selesai, tentukan filter tersebut dalam tampilan metrik sehingga pengguna tidak dapat secara tidak sengaja menyertakan data yang tidak lengkap.
  • Gunakan penamaan yang ramah bisnis: Nama metrik harus segera dikenali oleh pengguna bisnis (misalnya, Nilai Seumur Hidup Pelanggan vs. cltv_agg_measure).
  • Dimensi waktu terpisah: Selalu sertakan dimensi waktu terperinci (seperti Tanggal Pesanan) dan dimensi waktu terpotong (seperti Bulan Pesanan atau Minggu Pesanan) untuk mendukung analisis tingkat detail dan tren.