Databricks

ネットワークトラフィックの暗号化

Looker アプリケーションとデータベース間のネットワーク トラフィックを暗号化することをおすすめします。セキュアなデータベースアクセスを可能にするドキュメント ページに記載されているオプションのいずれかを検討してください。

Looker ユーザーを作成する

Looker は、個人用アクセス トークンを使用して Databricks に対して認証を行います。Databricks のドキュメントに沿って、Looker で使用する Databricks ユーザーの個人用アクセス トークンを作成します。

GRANT を使用して、このユーザーに権限を追加します。

少なくとも、Looker ユーザーには SELECT 権限と READ_METADATA 権限が必要です。

GRANT SELECT ON DATABASE <YOUR_DATABASE> TO `<looker>@<your.databricks.com>`
GRANT READ_METADATA ON DATABASE <YOUR_DATABASE> TO `<looker>@<your.databricks.com>`

サーバー情報

Databricks のドキュメントに沿って、Databricks クラスタの HTTP パスを確認します。このページでは、これは <YOUR_HTTP_PATH> となります。

永続的な派生テーブルの設定

永続的な派生テーブルを使用するには、別のデータベースを作成します。

CREATE DATABASE <YOUR_SCRATCH_DATABASE>

また、書き込みベースのユーザー権限の追加付与も必要になります。

GRANT SELECT CREATE MODIFY ON DATABASE <YOUR_SCRATCH_DATABASE> TO `<looker>@<your.databricks.com>`
GRANT READ_METADATA ON DATABASE <YOUR_SCRATCH_DATABASE> TO `<looker>@<your.databricks.com>`

データベースへの Looker 接続の作成

Looker の [管理者] セクションで [接続] を選択し、[新しい接続] をクリックします。

接続の詳細を入力します。設定の大部分は、ほとんどのデータベース言語に共通するものです。詳細については、Looker をデータベースに接続するのドキュメント ページをご覧ください。設定の一部を次に説明します。

  • Name: 接続の名前を指定します。LookML プロジェクトでこの接続を参照する際に使用します。
  • 言語: 言語 Databricks を指定します。
  • ホスト: Databricks ワークスペースの URL を指定します。例: dbc-yyyyyyyy.cloud.databricks.com/
  • ポート: データベース ポートを指定します。デフォルト値は 443 です。
  • データベース: Looker クエリに使用するデータベースの名前を指定します。デフォルト値は default です。
  • カタログ: Unity Catalog が有効になっている Databricks データベースの場合は、Looker クエリに使用するカタログの名前を指定します。カタログを指定しない場合、Looker はデフォルトのカタログからのみスキーマにアクセスします。詳細については、Databricks Unity Catalog を使用した Looker 機能をご覧ください。
  • 認証: [データベース アカウント] または [OAuth] を選択します。
    • [データベース アカウント] を使用して、Looker への接続に使用する Databricks 個人用アクセス トークンを指定します(手順については、Looker ユーザーを作成するセクションをご覧ください)。
      • [ユーザー名] に、値 token を入力します(このフィールドに Databricks ユーザーのメールアドレスを入力しないでください)。
      • [パスワード] に、Databricks の個人用アクセス トークンを入力します。
    • OAuth を使用して、接続用に OAuth を構成します。詳細については、Databricks 接続用の OAuth の構成をご覧ください。
  • PDT を有効にする: 有効にするには、この切り替えボタンを使用して永続的な派生テーブルを有効にします。PDT が有効になると、追加の PDT 設定と [PDT オーバーライド]が [接続] ウィンドウに表示されます。 注: PDT は、OAuth を使用する Databricks 接続ではサポートされていません。
  • Temp Database: PDT の保存に使用するデータベースを入力します。
  • PDT ビルダーの最大接続数: この接続で同時に可能な PDT ビルドの数を指定します。この値を大きく設定しすぎると、クエリ時間に悪影響を及ぼす可能性があります。詳細については、Looker をデータベースに接続のドキュメント ページをご覧ください。
  • その他の JDBC パラメータ: その他の Spark JDBC パラメータを追加します。

  • メンテナンス スケジュール: cron 式。Looker がいつデータグループと永続的な派生テーブルを確認するかを示します。この設定の詳細については、メンテナンス スケジュールのドキュメントをご覧ください。

  • SSL: SSL 接続を使用する場合にオンにします。

  • SSL の検証: 厳格な SSL 証明書の適用を確認します。

  • ノードあたりの最大接続数: この設定は、最初はデフォルト値のままで問題ありません。この設定の詳細については、Looker をデータベースに接続するドキュメント ページのノードごとの最大接続数セクションをご覧ください。

  • 接続プールのタイムアウト: この設定は、最初はデフォルト値のままで問題ありません。この設定の詳細については、Looker をデータベースに接続するのドキュメント ページの接続プールのタイムアウトのセクションをご覧ください。

  • SQL Runner Precache: SQL Runner でテーブルの情報を事前に読み込まず、テーブルを選択したときにのみテーブルの情報が読み込まれるようにするには、このチェックボックスをオフにします。この設定の詳細については、Looker をデータベースに接続するのドキュメント ページのSQL ランナーの事前キャッシュのセクションをご覧ください。

  • データベースのタイムゾーン: データベースで使用されるタイムゾーンを指定します。タイムゾーンの変換を行わない場合は、このフィールドを空白のままにします。詳しくは、タイムゾーン設定の使用のドキュメント ページをご覧ください。

[テスト] をクリックして接続をテストし、正しく構成されていることを確認します。[接続可能] と表示されたら、[接続] を押します。残りの接続テストが実行され、サービスアカウントが適切なロールで正常に設定されたことを検証します。トラブルシューティング情報については、データベース接続のテストのドキュメント ページをご覧ください。

Databricks Unity Catalog を使用した Looker 機能

Looker は、Unity Catalog が有効になっている Databricks データベースへの接続をサポートしています。データベースへの Looker 接続を作成するとき、または Databricks データベースへの既存の Looker 接続を編集するときに、Looker の [接続] ウィンドウの [カタログ] フィールドでカタログ名を指定できます。

Databricks データベースで Unity Catalog が有効になっている場合は、Looker 接続の [カタログ] フィールドで Databricks カタログを指定できます。Databricks カタログを指定すると、Looker は次のシナリオでカタログを使用します。

  • データベースから新しい LookML プロジェクトを生成するときに、Looker は接続の構成済みカタログ内のテーブルに基づいてプロジェクト ファイルを作成します。
  • 既存のプロジェクトの場合、Looker IDE を使用してテーブルからビューを作成するときに、Looker は接続の構成済みカタログ内のテーブルからのみビューファイルを作成します。
  • SQL Runner を使用する場合は、接続の構成済みカタログからスキーマのみを選択できます。

Databricks データベースで Unity Catalog が有効になっていて、Looker 接続の [カタログ] フィールドに値がない場合、次のシナリオのように、ほとんどの Looker 機能はデフォルトのカタログからのみスキーマにアクセスします。

  • データベースから新しい LookML プロジェクトを生成するときに、Looker は Unity Catalog のデフォルト カタログ内のテーブルに基づいてプロジェクト ファイルを作成します。
  • 既存のプロジェクトの場合、Looker IDE を使用してテーブルからビューを作成するときに、Looker は Unity Catalog のデフォルト カタログ内のテーブルからのみビューファイルを作成できます。
  • SQL Runner を使用する場合は、Unity Catalog のデフォルト カタログからスキーマのみを選択できます。

Databricks 接続用の OAuth の構成

Looker は Databricks 接続用の OAuth をサポートしています。つまり、各 Looker ユーザーはデータベースに対して認証を行い、Looker がユーザー独自の OAuth ユーザー アカウントを使用してデータベースでクエリを実行することを認可します。

OAuth により、データベース管理者は次のタスクが行えるようになります。

  • データベースに対してどのLookerユーザーがクエリを実行しているかを監査する
  • データベースレベルの権限を使用してロールベースのアクセス制御を実施する
  • データベースにアクセスするすべてのプロセスとアクションに、データベース ID とパスワードを複数の場所に埋め込む代わりに OAuth トークンを使用する
  • データベースを介して特定のユーザーの認証を取り消す

OAuth を使用する Databricks 接続では、ユーザーは OAuth トークンの有効期限が切れたときに定期的に再ログインする必要があります。

データベース レベルの OAuth 接続について、次の点に注意してください。

  • OAuth トークンの有効期限が切れると、そのユーザーが所有する Looker スケジュールやアラートが影響を受けます。これを回避するために、Looker は、現在有効な OAuth トークンの有効期限が切れる前に、各スケジュールと各アラートのオーナーに通知メールを送信します。この通知メールは、トークンの有効期限が切れる 14 日前、7 日前、1 日前に、Looker から送信されます。ユーザーは、Looker ユーザーページに移動して Looker をデータベースに再認可し、スケジュールやアラートの中断を回避できます。詳しくは、ユーザー アカウントの設定をカスタマイズするのドキュメント ページをご覧ください。
  • OAuth を使用するデータベース接続は「ユーザーごと」であり、キャッシュ ポリシーもまたクエリごとではなくユーザーごとです。つまり、Looker ではキャッシュ期間内に同じクエリが実行された場合、キャッシュに保存された結果を常に使用するのではなく、キャッシュ期間内に同一ユーザーが同じクエリを実行した場合にのみ、キャッシュ保存された結果が使用されます。キャッシュについて詳しくは、クエリのキャッシングのドキュメント ページをご覧ください。
  • 永続的な派生テーブル(PDT)は、OAuth を使用した Databricks 接続ではサポートされていません。
  • Looker 管理者が別のユーザーとして sudo を実行する場合、管理者はそのユーザーの OAuth アクセス トークンを使用することになります。ユーザーのアクセストークンの有効期限が切れている場合、管理者は sudo されているユーザーに代わって新しいトークンを作成することはできません。sudo コマンドの使用方法については、ユーザーのドキュメント ページをご覧ください。
  • ユーザーが OAuth を使用して Looker から Databricks にログインする場合、Looker にはユーザーの明示的な同意ダイアログは表示されません。Looker で OAuth を設定すると、Looker インスタンスが Databricks データベースにアクセスすることに暗黙的に同意したことになります。
  • Databricks 接続に OAuth を使用するには、Looker クエリに使用できる Databricks ユーザーまたはサービス プリンシパルが必要です。また、Looker がデータソースにアクセスし、Databricks 内で必要なアクションを実行するために必要な Databricks 権限をユーザーとサービス プリンシパルに付与する必要があります。

OAuth を使用して Looker への Databricks 接続を作成するには、次の一般的な手順を行う必要があります。これらの手順については、以降のセクションで詳しく説明します。

  1. Databricks でカスタム OAuth アプリケーションを有効にする
  2. Looker で接続を構成する

Databricks でカスタム OAuth アプリケーションを有効にする

Databricks への Looker 接続用に OAuth を使用するには、次の手順に沿って、Databricks データベースのカスタム OAuth アプリケーションとして Looker を有効にする必要があります。

  1. Databricks アカウント コンソールにログインします。
  2. サイドパネルの [設定] アイコンをクリックします。
  3. [設定] ウィンドウで [アプリの接続] タブをクリックします。
  4. [アプリの接続] タブで、[接続を追加] をクリックします。
  5. Databricks の [接続の追加] ダイアログに次の値を入力します。

    • アプリケーション名: 「Looker 統合」などのわかりやすい名前を指定します。
    • リダイレクト URL: 認証に成功した後に Databricks がユーザーをリダイレクトする Looker URL を、次の形式で入力します(example.looker.com は Looker インスタンスの URL に置き換えます)。

      https://example.looker.com/external_oauth/redirect
      
    • アクセス スコープ: Looker が SQL を介してデータにクエリを実行できるようにするには、[SQL] を選択します。

    • クライアント シークレットの作成: このオプションを有効にします。

  6. Databricks の [接続を追加] ダイアログで [追加] をクリックします。

  7. Databricks が生成した [クライアント ID] と [クライアント シークレット] をコピーして安全に保存します。

OAuth アプリケーションの登録は、Databricks データベースで処理されるまでに 30 分ほどかかることがあります。詳細については、公式の Databricks ドキュメントをご覧ください。

Looker で接続を構成する

Databricks データベースで Looker をカスタム OAuth アプリケーションとして構成したら、OAuth を使用する Databricks への Looker 接続を構成できます。

  1. Looker の [管理者] セクションで [接続] を選択し、[新しい接続] をクリックします。
  2. このページのデータベースへの Looker 接続の作成セクションの説明に沿って、接続の詳細を入力します。
  3. [認証] フィールドで [OAuth] オプションを選択します。
  4. [OAuth] オプションを選択すると、Looker に [OAuth クライアント ID] と [OAuth クライアント シークレット] フィールドが表示されます。これらの値には、Databricks で Looker をカスタム OAuth アプリケーションとして有効にしたときに Databricks によって生成されたクライアント IDクライアント シークレットを入力します。
  5. [接続設定] ページの下部にある [テスト] ボタンを選択して、Looker が OAuth フローを正常に確立し、Databricks インスタンスに接続できることを確認します。

機能のサポート

一部の機能については、Looker でサポートするには、データベース言語が同じ機能に対応している必要があります。

Databricks では、Looker 25.18 の時点で、次の機能がサポートされています。

機能 サポート対象
サポートレベル
サポート対象
Looker(Google Cloud コア)
はい
対称集計
はい
派生テーブル
はい
永続的な SQL 派生テーブル
はい
永続的なネイティブ派生テーブル
はい
安定したビュー
はい
クエリの強制終了
はい
SQL ベースのピボット
はい
タイムゾーン
はい
SSL
はい
Subtotals
はい
JDBC の追加パラメータ
はい
大文字と小文字の区別
はい
ロケーション タイプ
はい
リストの種類
はい
パーセンタイル
はい
個別のパーセンタイル
いいえ
SQL Runner の表示プロセス
いいえ
SQL Runner の説明テーブル
はい
SQL Runner 表示インデックス
×
SQL Runner Select 10
はい
SQL ランナーの数
はい
SQL の説明
はい
OAuth 2.0 認証情報
はい
コンテキスト コメント
はい
接続プーリング
いいえ
HLL スケッチ
いいえ
集約テーブルの自動認識
はい
増分PDT
はい
ミリ秒
はい
マイクロ秒
はい
マテリアライズド ビュー
いいえ
前期比指標
いいえ
Approximate Count Distinct
いいえ