Looker Blocks

Looker Blocks は一般的な分析パターンとデータソースのための事前構築済みデータモデルです。ゼロから始めるのではなく、他の人がすでに作った成果物を再使用し、仕様に正確に合わせてブロックをカスタマイズしていきます。最適化された SQL パターンや設定が不要なデータモデルまで、Looker Blocks をテンプレートとして使用することで、Looker でスピーディかつ柔軟にデータをモデル化できます。

Looker インスタンスをカスタマイズして追加するブロックは、次のようなさまざまなソースから取得できます。

  • スタンドアロンの Looker Marketplace。ブロックを閲覧して、そのソースコードにアクセスできます。
  • Looker インスタンスからアクセスできる Looker Marketplace。この Marketplace では、Looker Blocks(モデル)を閲覧して、Looker インスタンスに直接インストールできます。Looker Marketplace からツールをインストールする方法について詳しくは、Looker Marketplace の使用に関するドキュメント ページをご覧ください。

Looker Blocks の種類

Looker ブロックには、次のようなさまざまな機能があります。

  • 一般公開データセットと完全な LookML モデルの両方を含むデータブロックでは、モデル化されたテーブルにアクセスするために、GitHub リポジトリから LookML モデルをコピーする必要があります。これらのブロックはカスタマイズできません。詳細な手順については、このページのデータブロックを使用するをご覧ください。

  • Segment や Snowplow などのデータ収集アプリケーションは、比較的標準化された形式でイベントをトラッキングします。これにより、データ クレンジング、変換、分析が可能なテンプレート化された設計パターンを作成します。これらのアプリケーションを使用するすべてのお客様が使用できます。

  • Salesforce などの他のウェブ アプリケーションでは、内部ユーザー用のカスタム フィールドを追加できます。当然、これによってあまり標準化されていない形式でデータが作成されます。その結果、データモデルの一部をテンプレート化して分析を開始できますが、標準化されていない部分をカスタマイズする必要があります。

  • 一般的なビジネス分析情報用のブロックもあります。これらのブロックは、データソースに依存しない最適化された SQL または LookML のデザイン パターンです。たとえば、多くの会社では、顧客のライフタイム バリューの推移を分析したい場合があります。これらのパターンにはいくつかの前提条件が組み込まれていますが、特定のビジネスニーズに合わせてカスタマイズできます。これらのパターンは、特定のタイプの分析を行うための最適な方法に関する Looker の見解を反映しています。

Looker ブロックは、Looker Marketplace の公開インスタンスのディレクトリmarketplace.looker.com)で閲覧できます。

Looker Block のインストール

Looker インスタンスに関連付けられている Looker ブロックを Marketplace からインストールするには、Marketplace からツールをインストールするの手順に沿って操作します。

marketplace.looker.com から Looker ブロックをインストールするには、ブロックのソースコードの手順に沿って操作します。

各 Looker ブロックには、具体的な使用手順があります。

標準化とカスタマイズ

ブロックのカスタマイズが必要になる度合いは、データベース スキーマが標準化されている度合いによって異なります。ほとんどの Looker Block は、データスキーマに合わせていくつかのカスタマイズが必要になります。

同じファイル内の Explore とビューの両方を示すブロックもあります。これは表示を容易にするためのものです。通常は、LookML の適切なセクションをデータモデルの適切な場所にコピーする必要があります。詳細については、LookML プロジェクトのファイルの種類に関するドキュメント ページをご覧ください。

場合によっては、データモデルに新しい LookML ファイルを作成してサンプルを格納する必要があります。

データブロックを使用する

データブロックは特別なタイプの Looker Block であり、データセットとデータモデルを提供します。データブロックには、次のような一般公開データソースが含まれています。

  • ユーザー属性データ: 全米コミュニティ調査による、州、郡、郵便番号集計エリア、さらには国勢調査のブロック グループのレベルでの一般的なユーザー属性指標。
  • 気象データ: 米国の 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 の絞り込みを使用して、プロジェクト内のビューと Explore の LookML をベースにビルドすることもできます。

プロジェクトにデータブロックを追加するには:

  1. Looker インスタンスに新しいプロジェクトを追加します。

  2. プレビルドされた LookML にアクセスするには、前述の GitHub リポジトリフォークするかコピーします。必ず新しい GitHub リポジトリを作成してください。

  3. リポジトリから他のデータベース言語ファイルを削除します。Looker Block には通常、Google BigQuery、Amazon Redshift、Snowflake 用のファイルが含まれます。たとえば、Google BigQuery にデータブロックを設定する場合は、Google BigQuery ビューファイル、Google BigQuery Explore ファイル、Google BigQuery モデルファイルのみが必要です。

  4. モデルファイルの接続名を、データブロックのデータが存在するデータベース接続に置き換えます。Google BigQuery または Snowflake を使用している場合は、拡張または絞り込みを行うデータベース接続を使用します。

    結合ロジックはすべて、各リポジトリの .explore ファイルに存在します。これは、プロジェクト マニフェストの設定後、次の手順に含まれるファイルです。

  5. データブロックを拡張または絞り込むメインの Looker プロジェクトで、プロジェクト マニフェスト ファイルを作成します。

  6. メインの Looker プロジェクトでデータブロックを参照するには、次の LookML をプロジェクト マニフェスト ファイルに追加します。

    project_name: "<your_project_name\>"

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

設定の考慮事項とオプション

Google BigQuery: モデル化された正しいファイルセットを使用してください。Google BigQuery を使用している場合は、ファイル名に _bq_ を含むすべてのファイルを参照する場合があります。Google BigQuery モデルの言語を独自のデータベース言語に適応させることが必要な場合があります。

拡張機能: モデルの拡張機能は複数の接続で問題を引き起こす可能性があるため、すべてのプロジェクトは、Explore ファイルの拡張機能を許可するように設定されています。

派生テーブルの結合: ネイティブ派生テーブルのドキュメントをご覧ください。公開されているデータセットに対してさまざまなレベルの集計を行い、Looker で SQL を記述し、モデルに結合させることができます。

結果セットの結合: クエリ結果セットを結合して、Google のデータセットから結果セットを結合することもできます。

ユーザー属性データセットの設定例

  1. S3 バケットまたは Google Cloud サービス バケットから元データをダウンロードするか、Looker データベースに接続してデータにアクセスします。

  2. LookML からDemographic データブロック モデルを Looker インスタンスで別のプロジェクトとしてインポートします。

  3. include パラメータを使用して、ビューファイルを取り込みます。

  4. 次に、ビューファイルを拡張または絞り込むか、ネイティブ派生テーブルを利用して、Explore に必要な集約レベルでデータを取得します。

    この例では、ユーザー属性データは e コマース データセットと集計レベルが異なるため(ブロック グループと郵便番号)、組み込みの派生テーブルを使用して郵便番号レベルまで統計を集計します。これにより、複雑な多対多の結合が不要になります。

      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. データを探索して可視化します。