Mengembangkan blok kustom untuk Looker Marketplace

Halaman ini menjelaskan cara membuat blok kustom yang dapat ditambahkan ke Looker Marketplace dan diakses oleh pengguna Looker lainnya.

Perhatikan bahwa Anda harus menjadi anggota Jaringan Partner Looker atau pelanggan Looker untuk mengirimkan konten ke Looker Marketplace.

Untuk informasi tentang Looker Blocks yang sudah dibuat dan tersedia untuk digunakan, lihat halaman dokumentasi Looker Blocks. Untuk mengetahui informasi tentang cara menyesuaikan blok yang telah Anda instal dari Marketplace, lihat halaman dokumentasi Menyesuaikan Blok Looker Marketplace.

Untuk mengembangkan blok dan menyediakannya bagi semua pengguna Looker melalui Looker Marketplace, ikuti langkah-langkah yang dijelaskan di halaman ini:

  1. Siapkan dan hubungkan sumber data ke Looker.
  2. Buat project dan tambahkan file yang diperlukan.
  3. Buat blok Anda dapat diakses.
  4. Kirim blok Anda untuk ditinjau Looker.

Menyiapkan dan menghubungkan sumber data ke Looker

Blok adalah model data, sehingga berfungsi paling baik jika dirancang untuk set data tertentu yang mudah diulang. Sebagian besar error penginstalan blok terjadi saat set data pengguna gagal cocok dengan nama skema, tabel, dan kolom di blok.

  • Jika Anda membuat blok untuk set data tertentu, seperti data Google Analytics, catat setelan atau penyesuaian apa pun yang telah Anda buat pada set data tersebut. Jika memungkinkan, batasi penyesuaian tersebut seminimal mungkin untuk menyederhanakan penginstalan bagi pengguna Anda. Berikan petunjuk spesifik dalam file README.
  • Jika Anda membuat blok untuk pola analisis umum, seperti retensi kelompok, catat kolom yang Anda harapkan akan berisi set data pengguna. Kemungkinan besar, pengguna Anda tidak akan memiliki nama skema, tabel, dan kolom yang sama seperti dalam set data Anda. Gunakan konstanta LookML untuk nama tabel dan kolom, serta beri tahu pengguna tentang kolom yang perlu mereka perbarui dalam file README.

Setelah menentukan sumber data, hubungkan sumber data ke Looker agar Anda dapat mulai membuat model. Jika Anda perlu mengubah setelan koneksi default, buat catatan di file README.

Membuat project dan menambahkan file yang diperlukan

Buat project untuk merepresentasikan blok Anda. Pertimbangkan untuk menggunakan konvensi penamaan seperti block-<database_dialect>-<role> (misalnya, block-redshift-admin).

Selanjutnya, create file berikut di project Anda:

  • File manifes yang menentukan nama project, nama koneksi, dan konstanta lainnya
  • File tampilan untuk setiap tampilan
  • File eksplorasi untuk setiap Eksplorasi
  • File model yang menyertakan semua file tampilan, file jelajah, dan file dasbor LookML dalam project
  • Minimal tiga file dasbor LookML
  • File marketplace.json yang berisi informasi yang akan ditampilkan di listingan Marketplace untuk blok ini
  • File LICENSE yang menyertakan teks lisensi open source MIT
  • File README yang menjelaskan petunjuk dan opsi penyiapan

Pengguna yang menginstal blok Anda dapat meningkatkan kualitas Jelajah, tampilan, dan dasbor dasar dalam file refinements.lkml terpisah. Bagian berikut menjelaskan setiap jenis file yang diperlukan secara lebih mendetail:

Membuat file manifes

Buat file manifes untuk project Anda. File manifes harus dimulai dengan nama project, lalu menentukan beberapa konstanta LookML yang dapat diubah oleh pengguna. Misalnya, Anda harus menentukan nama koneksi Looker sebagai konstanta dengan export: override_required sehingga pengguna dapat menggantinya dengan nama koneksi mereka sendiri.

Berikut adalah contoh file manifes:

project_name: "block-ga-360"

################# Constants ################

## Used in google_analytics_block.model connection param
constant: CONNECTION_NAME {
  value: "looker-private-demo"
  export: override_required
}

## Used in ga_sessions.view sql_table_name
constant: SCHEMA_NAME {
  value: "bigquery-public-data.google_analytics_sample"
  export: override_optional
}

constant: GA360_TABLE_NAME {
  value: "ga_sessions_*"
  export: override_optional
}

Membuat file lihat dan jelajahi

Buat file view.lkml untuk setiap tampilan. Jika nama skema dan tabel pengguna mungkin berbeda dengan nama Anda, pastikan untuk menentukan nama skema dan tabel sebagai konstanta dalam file manifes sehingga pengguna yang mendownload blok Anda dapat memperbarui nama skema dan tabel di file manifes yang dibuat otomatis. Kemudian, referensikan konstanta tersebut dalam parameter sql_table_name tampilan Anda.

Berikut adalah contoh file view.lkml blok:

view: user_facts {

  # SCHEMA_NAME and GA360_TABLE_NAME are constants
  sql_table_name: @{SCHEMA_NAME}.@{GA360_TABLE_NAME} ;;

  dimension: clientID {
    type: string
    sql: ${TABLE.clientId}
  }

}

Selanjutnya, buat satu atau beberapa file explore.lkml. Pastikan setiap file eksplorasi menyertakan tampilan yang diperlukan untuk eksplorasi tersebut. Desain Jelajah dengan cermat agar berisi penggabungan, latihan, dan halaman Jelajah pilihan yang logis. Setelah pengguna lain menginstal blok dari Marketplace, pengguna bisnis mereka akan dapat langsung mulai menganalisis data mereka dengan mudah.

Anda dapat menemukan daftar umum praktik terbaik pemodelan di Forum Komunitas dan di Praktik Terbaik Looker, seperti Praktik terbaik: Anjuran dan larangan LookML serta Praktik terbaik: Menulis LookML yang berkelanjutan dan dapat dikelola.

Berikut adalah contoh file explore.lkml:

include: "/Google_Analytics/Sessions/*.view.lkml"

explore: future_input {
  view_label: "Audience Traits"
  label: "BigQuery ML Customer Likelihood to Purchase"
  description: "This explore allows you to slice and dice likeliness to purchase scores by different customer traits to see how they differ. The default range of data you are looking at is in the past 30 days"
  join: future_purchase_prediction {
    type: left_outer
    sql_on: ${future_purchase_prediction.clientId} = ${future_input.client_id} ;;
    relationship: one_to_one
  }
}

Membuat file model

Buat file model yang menyertakan semua file tampilan, jelajah, dan dasbor dalam project Anda. Pastikan nama koneksi dirujuk sebagai konstanta LookML dari file manifes Anda.

Tentukan minimal satu datagroup untuk menetapkan kebijakan penyimpanan data dalam cache.

Berikut adalah contoh file model:

connection: "@{CONNECTION_NAME}"

include: "/views/*.view.lkml"
include: "/explores/*.explore.lkml"
include: "/dashboards/*.dashboard.lookml"

datagroup: nightly {
  sql_trigger: SELECT TIMEZONE('US/Pacific',GETDATE())::DATE;;
}

Membuat file dasbor LookML

Agar dapat disertakan di Looker Marketplace, setiap blok harus menyertakan minimal tiga dasbor LookML yang memberikan analisis yang bermakna dan bermanfaat. Dasbor harus estetik, fungsional, dan komprehensif serta tidak boleh menampilkan data yang diburamkan.

Meskipun tidak ada persyaratan desain yang ketat untuk dasbor LookML, Looker merekomendasikan praktik terbaik desain umum berikut:

  • Palet warna yang konsisten di seluruh dasbor
  • Minimal tujuh kartu
  • Minimal tiga jenis visualisasi yang berbeda (misalnya, nilai tunggal, batang, dan garis)

Visualisasi kustom tidak didukung saat mengembangkan dasbor untuk Blok. Sebagai gantinya, gunakan jenis visualisasi native Looker.

Lihat halaman dokumentasi Parameter dasbor dan Parameter elemen dasbor untuk mengetahui informasi selengkapnya tentang cara menyesuaikan dasbor LookML dan visualisasi dalam dasbor LookML. Lihat file dasbor LookML Redshift Admin dari Blok Redshift Admin untuk mengetahui contoh file dasbor LookML.

Membuat file marketplace.json

Buat file marketplace.json untuk memberikan informasi tentang cara listingan ditampilkan di Marketplace. Setiap blok di Looker Marketplace harus memberikan informasi tambahan ini untuk membantu pengguna memilih blok yang paling sesuai dengan kebutuhan mereka. File marketplace.json Anda harus berisi:

  • Kolom label, category_label, dan branding Marketplace
  • Daftar konstanta LookML yang perlu diisi oleh pengguna untuk mengisi LookML model (misalnya, nama koneksi)

Berikut adalah contoh file marketplace.json untuk blok Performa Google BigQuery:

{
  "label": "Google BigQuery Performance",
  "category_label": "Models",
  "branding": {
    "image_uri": "https://marketplace-api.looker.com/block-icons/google-cloud.png",
    "tagline": "This Block provides a comprehensive overview of all cost and performance data for one or multiple BigQuery projects, enabling users to effectively monitor BigQuery usage down to a per user level. It can be used to set up alerts to long running or high cost queries."
  },

  "constants": {
    "CONNECTION_NAME": {
      "label": "Connection Name",
      "value_constraint": "connection"
    },
    "SCHEMA_NAME": {
      "label": "Schema Name"
    },
    "AUDIT_LOG_EXPORT_TABLE_NAME": {
      "label": "Audit Log Export Table Name",
      "description": "The table name of your BigQuery Optimization data (typically cloudaudit_googleapis_com_data_access_*)."
    }
  },
  "models": [
    {
      "name": "block_bigquery_optimization_v2",
      "connection_constant": "CONNECTION_NAME"
    }
  ]
}

Screenshot berikut menampilkan listingan Marketplace yang akan dihasilkan oleh file marketplace.json ini.

Contoh listingan Marketplace.

  • Kolom "label" mengontrol judul blok. Dalam contoh ini, ini adalah Performa Google BigQuery.
  • Kolom "tagline" mengontrol paragraf pertama listingan Marketplace.
  • Kolom "image_uri" mengontrol gambar yang ditampilkan di sudut kiri atas listingan Marketplace. Dalam contoh ini, ini adalah logo Google Cloud.
  • Kolom "constants" meminta pengguna untuk mengisi konstanta mereka di UI Marketplace selama proses penginstalan. Dalam contoh ini, tiga konstanta tercantum dalam file marketplace.json (CONNECTION_NAME, SCHEMA_NAME, dan AUDIT_LOG_EXPORT_TABLE_NAME), sehingga pengguna akan diminta untuk menentukan nilai untuk ketiga kolom tersebut sebelum menginstal.

Membuat file LISENSI

Semua Looker Block harus dilisensikan berdasarkan lisensi open source MIT. Sertakan teks dari lisensi ini dalam file bernama LICENSE. Lihat file LISENSI Blok Admin Redshift untuk contoh file LISENSI.

Membuat file README

File README harus berisi semua petunjuk untuk menerapkan blok dan harus secara eksplisit mengidentifikasi tempat penyesuaian diperlukan, seperti dalam file manifes yang dibuat secara otomatis](#the_autogenerated_manifest_file) atau file peningkatan. Lihat file README Blok Admin Redshift untuk contoh file README.

Hal-hal yang perlu dipertimbangkan untuk README Anda:

  • Sumber data apa yang diperlukan pengguna? Apakah mereka perlu membayar langganan?
  • Izin apa yang harus dimiliki pengguna database?
  • Setelan koneksi Looker apa yang diperlukan?
  • Apakah nama kolom blok akan cocok dengan nama kolom di set data pengguna Anda? Jika tidak, apa yang harus diubah pengguna Anda?

File yang dibuat secara otomatis

Saat pengguna menginstal blok Anda, instance Looker mereka akan membuat project Looker baru dengan file project Anda sebagai file hanya baca. Tindakan ini juga akan otomatis membuat file berikut untuk pengguna Anda:

  • File marketplace_lock.lkml hanya baca yang berisi informasi listingan marketplace
  • File manifes yang mereferensikan listingan dari marketplace_lock.lkml
  • File refinements.lkml yang menyertakan semua tampilan dan eksplorasi dari blok Anda
  • File model hanya baca yang menyertakan file model dari blok Anda dan file refinements.lkml

Pengguna yang menginstal blok Anda dari Looker Marketplace dapat menggunakan file refinements.lkml untuk meningkatkan kualitas LookML Anda dan bahkan dapat menambahkan file LookML baru. Lihat halaman dokumentasi Menyesuaikan Blok Looker Marketplace untuk mengetahui informasi selengkapnya tentang cara pengguna dapat menyesuaikan blok Anda.

File manifes yang dibuat otomatis

File manifes yang dibuat secara otomatis memungkinkan pengguna yang menginstal blok Anda untuk menetapkan variabel seperti nama koneksi. Konstanta LookML yang ditentukan dalam file manifes blok dapat diedit dalam file manifes yang dibuat secara otomatis, atau ditetapkan oleh pengguna di antarmuka pengguna download blok.

File peningkatan

File refinements.lkml yang dibuat secara otomatis memungkinkan pengguna yang menginstal blok Anda untuk meningkatkan kualitas tampilan dan Jelajahi yang ditentukan oleh blok Anda. Di sinilah pengguna yang mendownload blok Anda akan melakukan sebagian besar penyesuaian LookML agar sesuai dengan kasus penggunaan mereka.

Berikut adalah contoh file refinements.lkml yang dibuat secara otomatis:

include: "//ga360-v2/**/*.view.lkml"
include: "//ga360-v2/**/*.explore.lkml"

\# Use LookML refinements to refine views and explores that are defined in the remote project.
\# Learn more at: https://docs.looker.com/data-modeling/learning-lookml/refinements
\#
\#
\# For example we could add a new dimension to a view:
\#     view: +flights {
\#       dimension: air_carrier {
\#         type: string
\#         sql: ${TABLE}.air_carrier ;;
\#       }
\#     }
\#
\# Or apply a label to an explore:
\#     explore: +aircraft {
\#       label: "Aircraft Simplified"
\#     }
\#

Membuat project blok dapat diakses

Hosting LookML blok Anda di repositori GitHub yang dapat diakses secara publik.

Semua Looker Block harus dilisensikan berdasarkan lisensi open source MIT, dan teks lisensi harus disertakan dalam file LICENSE di repositori.

Mengirim blok untuk ditinjau

Setelah blok Anda siap dikirim, ikuti petunjuk di Mengirimkan konten ke Looker Marketplace untuk membuat dokumentasi pendukung blok Anda, mengirimkan blok Anda ke tim Looker untuk ditinjau, dan memublikasikan blok Anda ke Looker Marketplace.