Bagikan melalui


Komposabilitas dalam tampilan metrik

Halaman ini menjelaskan cara kerja komposabilitas dalam tampilan metrik dan memberikan contoh yang menunjukkan kepada Anda cara menyusun logika dengan membangun dimensi, pengukuran, dan gabungan dalam satu tampilan.

Gambaran Umum

Tampilan metrik dapat dikomposisikan, yang berarti Anda dapat menentukan logika berlapis dan dapat digunakan kembali. Alih-alih menulis setiap definisi dari awal, Anda dapat membuat definisi baru yang dibangun berdasarkan dimensi dan ukuran yang ada.

Dengan komposabilitas, Anda dapat:

  • Gunakan dimensi yang sudah ditentukan sebelumnya dalam dimensi baru
  • Mereferensikan dimensi apa pun atau langkah-langkah yang ditentukan sebelumnya dalam langkah-langkah baru
  • Kolom referensi dari gabungan yang ditentukan dalam tampilan metrik

Komposabilitas membantu Anda menghindari duplikasi, menyederhanakan definisi metrik, dan mendukung analisis yang lebih kompleks tanpa memerlukan SQL mentah setiap kali.

Komposabilitas metrik

Komposabilitas adalah prinsip membangun metrik kompleks dengan menggunakan kembali langkah-langkah dasar yang lebih sederhana. Alih-alih menulis dan memelihara logika SQL yang kompleks dan berlapis untuk setiap KPI turunan, Anda menentukan langkah-langkah "atom" inti sekali dan kemudian mereferensikannya dalam perhitungan lain yang lebih canggih. Pendekatan ini secara dramatis meningkatkan konsistensi, auditbilitas, dan pemeliharaan lapisan semantik Anda.

Fondasi komposabilitas adalah MEASURE() fungsi , yang memungkinkan definisi pengukuran untuk mereferensikan ukuran lain yang ditentukan dalam tampilan metrik yang sama.

Menentukan pengukuran dengan komposabilitas

Komposabilitas diimplementasikan di bagian measures tampilan metrik YAML.

Jenis Pengukuran Description Example
Atomic Agregasi sederhana dan langsung pada kolom sumber. Ini membentuk blok bangunan. SUM(o_totalprice)
Terdiri Ekspresi yang secara matematis menggabungkan satu atau beberapa ukuran lain menggunakan fungsiMEASURE(). MEASURE(Total Revenue) / MEASURE(Order Count)

Contoh: Nilai Pesanan Rata-Rata (AOV)

Untuk menghitung Nilai Pesanan Rata-Rata (AOV), Anda memerlukan dua langkah: Total Revenue dan Order Count.

source: samples.tpch.orders

measures:
  # Total Revenue
  - name: total_revenue
    expr: SUM(o_totalprice)
    comment: The gross total value of all orders.
    display_name: 'Total Revenue'

  # Order Count
  - name: order_count
    expr: COUNT(1)
    comment: The total number of line items or orders.
    display_name: 'Order Count'

  # Composed Measure: Average Order Value (AOV)
  - name: avg_order_value
    # Defines AOV as Total Revenue divided by Order Count
    expr: MEASURE(total_revenue) / MEASURE(order_count)
    comment: Total revenue divided by the number of orders.
    display_name: 'Avg Order Value'

Dalam contoh ini, jika definisi total_revenue perubahan (misalnya, jika filter untuk mengecualikan pajak ditambahkan), avg_order_value secara otomatis mewarisi perubahan tersebut, memastikan metrik AOV tetap konsisten dengan aturan bisnis baru.

Komposabilitas dengan logika bersyarat

Anda dapat menggunakan komposabilitas untuk membuat rasio kompleks, persentase kondisional, dan tingkat pertumbuhan tanpa mengandalkan fungsi jendela untuk perhitungan sederhana dari periode ke periode.

Contoh: Tingkat Pemenuhan

Untuk menghitung Tingkat Pemenuhan (Pesanan Terpenuhi/ Total Pesanan), Anda terlebih dahulu menentukan ukuran untuk pesanan yang diselesaikan menggunakan FILTER klausa.

source: samples.tpch.orders

measures:
  # Total Orders (denominator)
  - name: total_orders
    expr: COUNT(1)
    comment: Total volume of orders regardless of status.

  #  Fulfilled Orders (numerator)
  - name: fulfilled_orders
    expr: COUNT(1) FILTER (WHERE o_orderstatus = 'F')
    comment: Only includes orders marked as fulfilled.

  # Composed Measure: Fulfillment Rate (Ratio)
  - name: fulfillment_rate
    expr: MEASURE(fulfilled_orders) / MEASURE(total_orders)
    display_name: 'Order Fulfillment Rate'
    format:
      type: percentage # Using semantic metadata to format as a percent

Praktik terbaik untuk menggunakan komposabilitas

  1. Tentukan ukuran atomik terlebih dahulu: Selalu tetapkan ukuran dasar Anda (SUM, COUNT, AVG) sebelum menentukan ukuran apa pun yang mereferensikannya.
  2. Gunakan MEASURE() untuk konsistensi: Selalu gunakan MEASURE() fungsi saat mereferensikan perhitungan pengukuran lain dalam expr. Jangan mencoba mengulangi logika agregasi secara manual (misalnya, hindari SUM(a) / COUNT(b) jika ukuran untuk pembilang dan penyebut sudah ada).
  3. Prioritaskan keterbacaan: untuk ukuran tersusun, harus dibaca seperti rumus matematika untuk KPI. Misalnya, MEASURE(Gross Profit) / MEASURE(Total Revenue) lebih jelas dan lebih mudah diaudit daripada ekspresi SQL kompleks tunggal.
  4. Gabungkan dengan metadata semantik: Setelah menyusun rasio, gunakan metadata semantik (seperti yang fulfillment_rate ditunjukkan dalam contoh) untuk memformat hasil secara otomatis sebagai persentase atau mata uang untuk alat hilir. Lihat Menggunakan metadata semantik dalam tampilan metrik.