本頁說明如何建立自訂區塊,並將其新增至 Looker Marketplace,供其他 Looker 使用者存取。
請注意,您必須是 Looker 合作夥伴網路成員或 Looker 客戶,才能將內容提交至 Looker Marketplace。
如要瞭解已建構且可供使用的 Looker Blocks,請參閱 Looker Blocks 說明文件頁面。如要進一步瞭解如何自訂從市集安裝的區塊,請參閱「自訂 Looker Marketplace 區塊」說明文件頁面。
如要開發區塊並透過 Looker Marketplace 提供給所有 Looker 使用者,請按照本頁所述步驟操作:
設定資料來源並連結至 Looker
區塊是資料模型,因此如果是針對特定、容易重複的資料集設計,效果會最好。大部分的區塊安裝錯誤都是因為使用者的資料集與區塊中的結構定義、資料表和欄位名稱不符。
- 如果您要為特定資料集 (例如 Google Analytics 資料) 建立區塊,請記下您對資料集所做的任何設定或自訂項目。盡可能減少這類自訂項目,以便為使用者簡化安裝程序。在 README 檔案中提供具體操作說明。
- 如果您要為一般分析模式 (例如同類群組留存率) 建立區塊,請記下您希望使用者資料集包含哪些欄位。使用者很可能不會使用與資料集中相同的結構定義、資料表和欄位名稱。使用 LookML 常數做為表格和欄位名稱,並在 README 檔案中告知使用者需要更新哪些欄位。
確定資料來源後,請將資料來源連結至 Looker,以便開始建立模型。如果需要變更任何預設連線設定,請在README 檔案中附註。
建立專案並新增必要檔案
建立專案來代表區塊。建議您使用 block-<database_dialect>-<role>
等命名慣例 (例如 block-redshift-admin
)。
接下來,請在專案中建立下列檔案:
- 資訊清單檔案:用於定義專案名稱、連線名稱和任何其他常數
- 每個檢視畫面的檢視畫面檔案
- 每個探索檔案
- 模型檔案:包含專案中的所有檢視表檔案、探索檔案和 LookML 資訊主頁檔案
- 至少三個 LookML 資訊主頁檔案
marketplace.json
檔案:包含在市集產品資訊中顯示的資訊- LICENSE 檔案,其中包含 MIT 開放原始碼授權的文字
- 詳細說明設定操作說明和選項的 README 檔案
安裝您的區塊的使用者可以在單獨的 refinements.lkml
檔案中精簡基本探索、檢視畫面和資訊主頁。以下各節將詳細說明每種必要檔案類型:
建立資訊清單檔案
為專案建立資訊清單檔案。資訊清單檔案應以專案名稱開頭,然後定義一些供使用者變更的 LookML 常數。舉例來說,您應將 Looker 連線名稱定義為 export: override_required
的常數,以便使用者可以使用自己的連線名稱覆寫該名稱。
以下是資訊清單檔案範例:
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
}
建立檢視表和「探索」檔案
為每個檢視畫面建立 view.lkml
檔案。如果使用者的結構定義和資料表名稱可能與您的不同,請務必在資訊清單檔案中將結構定義和資料表名稱定義為常數,以便下載您區塊的使用者在自動產生的資訊清單檔案中更新結構定義和資料表名稱。接著,在檢視畫面的 sql_table_name
參數中參照這些常數。
以下是區塊 view.lkml
檔案的範例:
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}
}
}
接著,請建立一或多個 explore.lkml
檔案。請確認每個 Explore 檔案都包含該 Explore 所需的檢視畫面。請仔細設計探索,納入邏輯彙整、深入分析和精選的探索頁面。其他使用者從 Marketplace 安裝區塊後,商務使用者就能輕鬆開始分析資料。
您可以在社群論壇和 Looker 最佳做法中找到一般模型最佳做法清單,例如最佳做法:LookML 的注意事項和禁忌和最佳做法:撰寫可持續維護的 LookML。
以下是 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
}
}
建立模型檔案
建立模型檔案,其中包含專案中的所有檢視畫面、探索和資訊主頁檔案。請確認連線名稱是以 LookML 常數的形式在資訊清單檔案中引用。
定義至少一個datagroup,以設定快取政策。
以下是模型檔案的範例:
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;;
}
建立 LookML 資訊主頁檔案
每個模塊都必須提供至少三個 LookML 資訊主頁,才能納入 Looker Marketplace。這些資訊主頁必須提供有意義且實用的分析。資訊主頁應具備美觀、實用和全面性,且不得顯示任何模糊處理的資料。
雖然 LookML 資訊主頁沒有硬性設計規定,但 Looker 建議採用下列一般設計最佳做法:
- 資訊主頁中一致的調色盤
- 至少有七個圖塊
- 至少三種不同的視覺化呈現類型 (例如單一值、長條圖和折線圖)
如要進一步瞭解如何自訂 LookML 資訊主頁和 LookML 資訊主頁中的圖表,請參閱「資訊主頁參數」和「資訊主頁元素參數」說明文件。如需 LookML 資訊主頁檔案的範例,請參閱 Redshift 管理員區塊中的 Redshift 管理員 LookML 資訊主頁檔案。
建立 marketplace.json
檔案
建立 marketplace.json
檔案,提供產品資訊在 Marketplace 中的顯示方式。Looker Marketplace 中的每個區塊都必須提供這項額外資訊,協助使用者選擇最符合需求的區塊。marketplace.json
檔案應包含:
- 市集
label
、category_label
和branding
欄位 - 列出 LookML 常數清單,使用者必須填入這些常數,才能填入模型 LookML (例如連線名稱)
以下是 Google BigQuery 效能方塊的 marketplace.json
檔案範例:
{
"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"
}
]
}
下圖顯示這個 marketplace.json
檔案會產生的市集產品資訊。
"label"
欄位可控制區塊的標題。在本例中,這項指標是 Google BigQuery 效能。"tagline"
欄位會控制市集清單的第一段落。"image_uri"
欄位會控制市集產品資訊左上角顯示的圖片。在本例中,這就是 Google Cloud 標誌。"constants"
欄位會在安裝程序期間,提示使用者在 Marketplace UI 中填入常數。在本例中,marketplace.json
檔案列出了三個常數 (CONNECTION_NAME
、SCHEMA_NAME
和AUDIT_LOG_EXPORT_TABLE_NAME
),因此系統會在安裝前提示使用者指定這三個欄位的值。
建立 LICENSE 檔案
所有 Looker 方塊都必須根據 MIT 開放原始碼授權授權。在名為 LICENSE 的檔案中加入此授權的文字。如需 LICENSE 檔案範例,請參閱 Redshift 管理區塊 LICENSE 檔案。
建立 README 檔案
README 檔案應包含實作區塊的所有操作說明,並明確指出需要進行自訂的部分,例如在自動產生的資訊清單檔案](#the_autogenerated_manifest_file) 或精修檔案中。如需 README 檔案範例,請參閱 Redshift 管理區塊 README 檔案。
撰寫 README 時請注意以下事項:
- 使用者需要哪些資料來源?他們是否需要付費訂閱?
- 資料庫使用者應具備哪些權限?
- 需要哪些 Looker 連線設定?
- 區塊欄位名稱是否與使用者資料集中的欄位名稱相符?如果不是,使用者應如何變更?
自動產生的檔案
當使用者安裝您的區塊時,Looker 執行個體會建立新的 Looker 專案,並將您的專案檔案設為唯讀檔案。系統也會為使用者自動產生下列檔案:
- 唯讀
marketplace_lock.lkml
檔案,其中包含市集產品資訊 - 參照
marketplace_lock.lkml
中的商家資訊的資訊清單檔案 refinements.lkml
檔案,內含區塊中的所有檢視和探索- 只讀模型檔案,包含區塊的模型檔案和
refinements.lkml
檔案
從 Looker Marketplace 安裝您的區塊的使用者可以使用 refinements.lkml
檔案精修 LookML,甚至可以新增 LookML 檔案。如要進一步瞭解使用者如何自訂區塊,請參閱「自訂 Looker Marketplace 區塊」說明文件。
自動產生的資訊清單檔案
自動產生的資訊清單檔案可讓安裝您的區塊的使用者設定連線名稱等變數。區塊資訊清單檔案中定義的 LookML 常數,可在系統產生的資訊清單檔案中編輯,也可以由使用者在區塊下載使用者介面中設定。
精修檔案
系統產生的 refinements.lkml
檔案可讓安裝您的區塊的使用者微調定義區塊的檢視畫面和探索。下載您的區塊的使用者會在此進行大部分的 LookML 自訂設定,以符合自身用途。
以下是自動產生的 refinements.lkml
檔案範例:
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"
\# }
\#
讓區塊專案可供存取
在可供大眾存取的 GitHub 存放區中代管 LookML 區塊。
所有 Looker 方塊都必須採用 MIT 開放原始碼授權,且授權文字必須包含在存放區的 LICENSE 檔案中。
將封鎖項目送交審查
模塊準備好提交後,請按照「將內容提交至 Looker Marketplace」中的操作說明,為模塊建立輔助文件,將模塊提交給 Looker 團隊進行審查,然後將模塊發布至 Looker Marketplace。