Databricks

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

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

Looker ユーザーを作成する

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

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-xxxxxxxx.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 パラメータを追加します。

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

  • 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 Integration」などのわかりやすい名前を付けます。
    • リダイレクト URL: 認証に成功したユーザーを Databricks がリダイレクトする Looker URL を、次の形式で入力します(example.looker.com は Looker インスタンスの URL に置き換えます)。

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

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

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

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

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

Looker で接続を構成する

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

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

機能のサポート

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

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

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