Looker 模塊

Looker Blocks 是預先建構的資料模型,適用於常見的分析模式和資料來源。重複使用他人已完成的工作,不必從頭開始,然後根據確切規格自訂區塊。從最佳化 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 Block,請按照從 Marketplace 安裝工具的操作說明進行。

如要從 marketplace.looker.com 安裝 Looker Block,請按照該 Block 原始碼中的操作說明進行。

每個 Looker Block 都有專屬的使用說明。

標準化和自訂

您可能需要自訂程度的區塊,取決於資料庫結構定義的標準化程度。大多數 Looker 區塊都需要經過一些自訂,才能符合您的資料結構定義。

部分區塊會在同一個檔案中同時展示「探索」和檢視畫面。這是為了方便查看,但一般來說,您會想將 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 陳述式,以符合所選資料庫中的資料類型,但應該能瞭解每個資料表的資料欄類型。

直接從下列位置下載資料:

存取 LookML 模型

將其中一個 GitHub 存放區分叉到新的 GitHub 存放區 (由 Looker 或貴公司代管),然後在執行個體中擴充調整

在專案中新增資料區塊

除了本節所述方法,您也可以使用 LookML 修訂,以專案中 Views 和「探索」的 LookML 為基礎進行建構。

如要在專案中新增資料區塊,請按照下列步驟操作:

  1. 在 Looker 執行個體中新增專案

  2. 分叉或複製先前提及的 GitHub 存放區,即可存取預先建構的 LookML。請務必建立新的 GitHub 存放區。

  3. 從存放區中移除其他資料庫方言檔案。Looker Blocks 通常會包含 Google BigQuery、Amazon Redshift 和 Snowflake 的檔案。舉例來說,如果您要在 Google BigQuery 上設定資料區塊,只需要 Google BigQuery 檢視檔案、Google BigQuery 探索檔案和 Google BigQuery 模型檔案。

  4. 將模型檔案中的連線名稱,替換為資料區塊資料所在的資料庫連線。如果您使用 Google BigQuery 或 Snowflake,請使用要擴充或精簡的資料庫連線。

    所有聯結邏輯都位於各存放區的 .explore 檔案中。設定專案資訊清單後,您會在後續步驟中加入這個檔案。

  5. 在您要擴充或修正資料區塊的主要 Looker 專案中,建立專案資訊清單檔案

  6. 在專案資訊清單檔案中加入下列 LookML,即可在主要 Looker 專案中參照資料區塊:

    project_name: "<your_project_name\>"

    local_dependency: {
      project: "<project_name_of_datablock\>"
    }

設定注意事項和選項

Google BigQuery:請務必使用正確的已建模檔案集。如果您使用 Google BigQuery,可能想在檔案名稱中參照所有 _bq_。您可能需要根據自己的資料庫方言,調整我們的 Google BigQuery 模型方言。

擴充功能:我們已設定所有專案,允許從「探索」檔案擴充,因為模型擴充功能可能會導致多個連線發生問題。

加入衍生資料表:建議您參閱原生衍生資料表的說明文件。您可以讓 Looker 在公開資料集的不同匯總層級為您編寫 SQL,並將這些資料集加入模型。

合併結果集:您也可以選擇合併結果集,方法是結合查詢結果集,將我們的資料集與您的資料合併。

客層資料集的範例設定

  1. 如要存取資料,請從 S3 或 Google Cloud 服務值區下載原始資料,或是連線至 Looker 資料庫。

  2. 從 LookML 匯入人口統計資料區塊模型,做為 Looker 執行個體中的獨立專案。

  3. 使用 include 參數匯入檢視區塊檔案。

  4. 然後擴充修正檢視檔案,或使用原生衍生資料表,以取得適用於探索的必要匯總層級資料。

    在我們的範例中,由於人口統計資料的匯總層級與電子商務資料集不同 (街區群組與郵遞區號),因此我們使用內建衍生資料表,將統計資料匯總至郵遞區號層級。這樣一來,就不必進行複雜的多對多聯結:

      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
        }
    
  5. 將檢視區塊檔案加入模型:

      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
        }
      }
    
  6. 探索以圖表呈現資料。