Looker 模塊是常見分析模式和資料來源的預建資料模型。重複使用他人已完成的工作,不必從頭開始,然後根據確切規格自訂區塊。從最佳化 SQL 模式到完整建立的資料模型,Looker Blocks 可做為起點,在 Looker 中快速且彈性地建立資料模型。
您可以從各種來源取得 Blocks,然後自訂並新增至 Looker 執行個體,包括:
- 獨立的 Looker Marketplace,您可以在這裡瀏覽模塊並存取原始碼。
- 可從 Looker 執行個體存取的 Looker Marketplace。您可以透過這個 Marketplace 瀏覽並將 Looker 模塊 (稱為「模型」) 直接安裝到 Looker 執行個體。如要進一步瞭解如何從 Looker Marketplace 安裝工具,請參閱「使用 Looker Marketplace」說明文件頁面。
Looker 模塊類型
Looker Blocks 提供各種功能,例如:
資料區塊 (包括公開資料集和完整 LookML 模型) 需要從 GitHub 存放區複製 LookML 模型,才能存取已建模的資料表。這些區塊無法自訂。如需詳細操作說明,請參閱本頁的「使用資料區塊」一節。
資料收集應用程式 (例如 Segment 和 Snowplow) 會以相對標準化的格式追蹤事件,因此可以建立範本化設計模式,供使用這些應用程式的任何客戶進行資料清理、轉換和分析。
其他網路應用程式 (例如 Salesforce) 可讓您為內部使用者新增自訂欄位。這自然會以較不標準化的格式建立資料。因此,我們可以將部分資料模型範本化,讓分析功能開始運作,但您需要自訂非標準化部分。
此外,還有一般業務洞察資料的區塊。這些區塊是與資料來源無關的最佳化 SQL 或 LookML 設計模式。舉例來說,許多公司都想分析顧客的生命週期價值。這些模式內建一些假設,但可自訂以符合特定業務需求。這些模式反映 Looker 對於進行特定類型分析的最佳方式。
您可以在 Looker Marketplace 公開例項的目錄 (網址為 marketplace.looker.com) 中瀏覽 Looker Blocks。
安裝 Looker 模塊
如要從 Marketplace 安裝與 Looker 執行個體相關聯的 Looker 模塊,請按照這篇文章的說明,從 Marketplace 安裝工具。
如要從 marketplace.looker.com 安裝 Looker 模塊,請按照該模塊原始碼中的操作說明進行。
每個 Looker 模塊都有具體的使用說明。
標準化和自訂
您可能需要自訂程度取決於資料庫結構定義的標準化程度。大多數 Looker Blocks 都需要經過一些自訂,才能符合您的資料結構定義。
部分區塊會在同一個檔案中示範「探索」和檢視畫面。這是為了方便查看,但一般來說,您會想將 LookML 的適當部分複製到資料模型中的適當位置。詳情請參閱「LookML 專案中的檔案類型」說明文件頁面。
在某些情況下,您可能需要在資料模型中建立新的 LookML 檔案,以存放範例。
使用資料區塊
資料區塊是特殊類型的 Looker 模塊,可提供資料集和資料模型。資料區塊包括公開資料來源,例如:
- 人口統計資料:美國社區調查的常見人口統計指標,包括州、郡、郵遞區號匯算區,甚至是普查區塊群組層級。
- 天氣資料:美國郵遞區號層級的天氣報告,時間範圍從 1920 年到前一天。這個區塊會在每晚更新。
存取資料區塊資料集的程序會因資料庫結構定義而異。以下各節說明如何存取這些資料庫中的資料集:
存取 Google BigQuery 中的資料集
如果您有現有的 Google BigQuery 帳戶,可以存取 Looker 的 BigQuery 代管資料集。請直接前往本頁面的「將資料區塊新增至專案」一節。
如果沒有 Google BigQuery 帳戶,可以設定免費試用方案,然後在 BigQuery 中存取 Looker 的公開資料集。
存取其他資料庫中的資料集
Amazon Redshift、MySQL、PostgreSQL 或 Oracle 資料集的轉換資料會公開發布在 Google Cloud 服務和 S3 中,方便您直接匯入所選資料庫。
我們也在 GitHub 存放區中提供每個資料集的資料定義語言 (DDL)。您可能需要修改 DDL 陳述式,才能符合所選資料庫的資料類型,但應該能瞭解每個資料表的資料欄類型。
直接從下列任一位置下載資料:
- Google Cloud 服務:
_gs://looker-datablocks/_ - S3:
_s3://looker-datablocks/_ - S3 Bucket 網頁連結:http://looker-datablocks.s3-website-us-east-1.amazonaws.com/
存取 LookML 模型
將其中一個 GitHub 存放區分叉到新的 GitHub 存放區 (由 Looker 或貴公司代管),然後在執行個體中擴充或調整:
- 人口統計資料 (美國社區調查) - https://github.com/llooker/datablocks-acs
- 天氣 (GSOD) - https://github.com/llooker/datablocks-gsod
在專案中新增資料區塊
除了本節所述方法,您也可以使用 LookML 修訂,在專案中擴充檢視區塊和探索的 LookML。
如要在專案中新增資料區塊,請按照下列步驟操作:
在 Looker 執行個體中新增專案。
建立分支或複製先前提及的 GitHub 存放區,即可存取預先建構的 LookML。請務必建立新的 GitHub 存放區。
從存放區中移除其他資料庫方言檔案。Looker Blocks 通常會包含 Google BigQuery、Amazon Redshift 和 Snowflake 的檔案。舉例來說,如果您要在 Google BigQuery 上設定資料區塊,只需要 Google BigQuery 檢視檔案、Google BigQuery 探索檔案和 Google BigQuery 模型檔案。
將模型檔案中的連線名稱,替換為資料區塊資料所在的資料庫連線。如果您使用 Google BigQuery 或 Snowflake,請使用要擴充或精簡的資料庫連線。
所有聯結邏輯都存在於每個存放區的
.explore檔案中。設定專案資訊清單後,您會在後續步驟中加入這個檔案。在您要擴充或調整資料區塊的主要 Looker 專案中,建立專案資訊清單檔案。
在專案資訊清單檔案中加入下列 LookML,即可在主要 Looker 專案中參照資料區塊:
project_name: "<your_project_name\>"
local_dependency: {
project: "<project_name_of_datablock\>"
}
設定注意事項和選項
Google BigQuery:請務必使用正確的已建模檔案集。如果您使用 Google BigQuery,可能需要參考檔名中含有 _bq_ 的所有檔案。您可能必須將 Google BigQuery 模型方言調整為自己的資料庫方言。
擴充功能:我們已設定所有專案,允許從「探索」檔案擴充,因為模型擴充功能可能會導致多個連線發生問題。
彙整衍生資料表:建議您參閱原生衍生資料表的說明文件。您可以讓 Looker 針對公開資料集的不同匯總層級編寫 SQL,並將這些資料集加入模型。
合併結果集:您也可以選擇合併結果集,將資料集中的結果集與您的資料合併。
客層資料集設定範例
如要存取資料,請從 S3 或 Google Cloud 服務值區下載原始資料,或是連線至 Looker 資料庫。
從 LookML 匯入「人口統計資料區塊」模型,做為 Looker 執行個體中的獨立專案。
使用
include參數匯入檢視表檔案。然後擴充或修正檢視表檔案,或使用原生衍生資料表,取得「探索」所需的匯總層級資料。
在我們的範例中,由於人口統計資料的匯總層級與電子商務資料集不同 (街區群組與郵遞區號),因此我們使用內建衍生資料表,將統計資料匯總至郵遞區號層級。這樣就能避免混亂的多對多聯結:
include: "/american_community_survey/bq.explore" view: zipcode_income_facts { derived_table: { persist_for: "10000 hours" explore_source: fast_facts { column: ZCTA5 { field: tract_zcta_map.ZCTA5 } column: income_household { field: bg_facts.avg_income_house } column: total_population { field: bg_facts.total_population } } } dimension: ZCTA5 {} dimension: income_household { hidden: yes }將檢視區塊檔案加入模型:
include: "acs*.view" explore: order_items { join: users { sql_on: ${users.id} = ${order_items.user_id} ;; type: left_outer relationship: many_to_one } join: zipcode_income_facts { sql_on: ${users.zip} = ${zipcode_income_facts.ZCTA5} ;; type: left_outer relationship: many_to_one } }