メインコンテンツまでスキップ

Databricks Excelアドインを使用してデータをインポートおよびクエリーする

Databricks Excelアドインを使用すると、DatabricksワークスペースがMicrosoft Excelに接続され、ガバナンスされたLakehouseデータがスプレッドシートに直接取り込まれます。

このページでは、Databricks Excel アドインを使用して、Excel で Databricks からデータをインポートして分析する方法について説明します。SQLの知識が不要な直感的なインターフェイスを通じて、Databricksテーブルの参照やインポートを行うことができます。このアドインではカスタムSQLクエリーを実行する柔軟性が提供されますが、これは必須ではありません。

前提条件​

SQLウェアハウスを選択してください​

使用するSQLウェアハウスを選択します:

  1. ExcelのDatabricksアドインペインの右上隅で、ドロップダウンメニューをクリックします。
  2. 使用するSQLウェアハウスを選択します。

Databricksからデータをインポートする​

テーブルの選択、SQLクエリーの記述、またはピボットテーブルのインポートによって、ExcelでDatabricksからデータをインポートします。

注記

You can import Unity Catalog metric views using pivot tables, SQL クエリー, and custom functions.

ピボットテーブルの作成​

ExcelでUnity Catalogのテーブルとビューからピボットテーブルを作成するには:

  1. Databricks Excelアドイン ペインの [新しいインポート] tabで、 [インポート方法] として [データを選択] を選択します。

  2. [カタログ] で、ピボットテーブルの作成元となるテーブルを選択し、 [選択] をクリックします。

  3. [ピボットデータ (Pivot Data)] チェックボックスを選択します。

  4. (オプション) Live query を選択してクエリーをランし、ピボットテーブルの構築に合わせて新しいワークシートを自動的に更新します。情報については、Live クエリーを参照してください。

  5. 各フィールドを適切なエリアにドラッグして、 Row (行)、 Column (列)、 Value (値)を設定します。

  6. (オプション) フィルター を追加します。フィルターの情報については、インポートしたデータのフィルターを参照してください。

  7. (オプション)インポートの行制限を設定します。

  8. 結果をインポートしてください。次のいずれかを選択してください。

    • 保存してインポート をクリックして、Excelブックで再利用できるようにクエリーを保存し、結果をインポートします。
    • 下矢印をクリックし、 [結果のインポート] をクリックすると、クエリーを保存せずに結果をインポートできます。インポートの編集を続ける場合は、このオプションを使用します。
注記

ピボットテーブルは新しいシートにのみインポートできます。

When working with Unity Catalog メトリクス in pivot tables, you might see Sum(measure) displayed in the results.This is expected behavior and no additional aggregation occurs.Excel requires that values have an aggregation function, but because the data contains unique values, no aggregation occurs.

ライブクエリー​

ライブクエリーでは、ピボットクエリーがランされ、ピボットの編集に合わせてワークシートが自動的に更新されるため、 [インポート] をクリックした後ではなく、フィールドを更新したときに結果を確認できます。ライブクエリーでは、少なくとも1つの行または列と1つの値を変更した後にクエリーが再実行されます。標準のフローに戻るには、機能をオフにします。

Liveクエリーが有効になっている場合、ピボットテーブルは常に新しいシートで作成および更新されます。さらに、ピボットビルダーには、 [インポート] の代わりに [インポートの保存] ボタンが表示されます。

ライブピボットの編集中にExcelが終了した場合、 Imports tabにリカバリーオプションが表示され、そのインポートの最後に保存された構成を復元できます。

テーブルを選択​

データはExcelのテーブルオブジェクトとしてインポートされます。テーブルを移動したりシートの名前を変更したりすると、Excelアドインによって新しい場所のデータが更新されます。

Databricksテーブルからデータをインポートするには、次の手順を実行します。

  1. Databricks Excelアドイン ペインの [新しいインポート] tabで、 [インポート方法] として [データを選択] を選択します。
  2. カタログエクスプローラーからインポートするテーブルを選択してください。所有者、認定ステータス、その他のプロパティでカタログをフィルタリングするには、スライダーアイコン。フィルターを使用できます。
  3. [選択] をクリックします。
  4. [列] の下にある下向き矢印をクリックし、インポートしない列の選択を解除するか、すべての列を選択したままにしてテーブル全体をインポートします。
  5. (オプション) フィルター を追加します。フィルターの情報については、インポートしたデータのフィルターを参照してください。
  6. (オプション)インポートのサンプルを表示するには、 [プレビュー] をクリックします。
  7. (オプション) 行制限を設定して、インポートする行数を制限します。
  8. (オプション)インポートしたデータを特定するには、 [インポート名] を入力します。
  9. Under Output Destination , choose to import the data to a new sheet or the current sheet.If you import to the current sheet, data 起動 at the cell reference you enter (by default A1).
  10. 結果をインポートしてください。次のいずれかを選択してください。
    • 保存してインポート をクリックして、Excelブックで再利用できるようにクエリーを保存し、結果をインポートします。
    • 下矢印をクリックし、 [結果のインポート] をクリックすると、クエリーを保存せずに結果をインポートできます。インポートの編集を続ける場合は、このオプションを使用します。

SQL クエリーの記述​

Write SQL インポート方法は、SQL関数とストアドプロシージャをサポートしています。

Databricksワークスペースに対してカスタムSQLクエリーを実行するには、次の操作を行います。

  1. Databricks Excelアドインペインの New import tab で、 Import method として Write SQL を選択します。

  2. 後で識別できるようにクエリーの名前を入力します。

  3. 新しいクエリーを作成するか、Databricks ワークスペースの既存のクエリーを使用します。

    • エディターでSQLクエリーを記述します。アクセス権を持つUnity Catalog内の任意のテーブルをクエリーできます。

      • データ アイコン。 カタログ エクスプローラをクリックして、スキーマとテーブルを表示します。
    • Databricks ワークスペースのクエリーまたは Excel 内の既存のクエリーを使用するには、フォルダアイコン。 フォルダーをクリックします。Databricks ワークスペースの既存のクエリーを使用する場合、Excel で行われた編集は Databricks に反映されません。

注記

クエリーは、Excelに表示される前に、クエリーエディタの右上隅にある [保存] ボタンを使用してDatabricksに明示的に保存する必要があります。

  1. (オプション) クエリーパラメーターを追加するには、 パラメータ の横にある +Add をクリックします。パラメーターをクリックし、 Parameter Name と Parameter Value を入力します。

    • パラメーター値として、特定の値を入力するか、ボックスと矢印ボタンをクリックしてセル参照を指定します。セルまたはセルの範囲を選択し、矢印をクリックしてパラメーター値を自動的に入力します。
  2. Under Output Destination , choose to import the data to a new sheet or the current sheet.If you import to the current sheet, data 起動 at the cell reference you enter (by default A1).

  3. クエリー結果をプレビューするには、 [ラン] をクリックします。

  4. 結果をインポートしてください。次のいずれかを選択してください。

    • 保存してインポート をクリックして、Excelブックで再利用できるようにクエリーを保存し、結果をインポートします。
    • 下矢印をクリックし、 [結果のインポート] をクリックすると、クエリーを保存せずに結果をインポートできます。インポートの編集を続ける場合は、このオプションを使用します。

カスタム関数を使用してクエリー パラメーターを追加することもできます。SQL の記述を参照してください。

インポートしたデータをフィルタリングする​

テーブルを選択するかピボットテーブルを作成してデータをインポートすると、フィルターを適用して結果を絞り込むことができます。

文字列フィルターでは、大文字と小文字が区別されず、カスケードされます。複数のフィルターを適用する場合、各フィルターで使用可能な値は、その前にあるフィルターでの選択内容によって異なります。たとえば、国でフィルター処理してから都市のフィルターを追加した場合、都市フィルターには選択した国内の都市のみが表示されます。

フィルターを設定するには、 [フィルター (Filters)] の横にある [+] をクリックし、フィルターを適用する列を選択してから、フィルター条件を入力します。値が必要なフィルターの場合は、次のいずれかの操作を行います。

  • 値を入力してください。

  • 最大5,000個の異なるフィルター値のリストを生成するには、次の方法を使用できます。

    1. [値 (Values)] 、 [フィルター値の取得 (Get filter values)] の順にクリックします。
    2. 下矢印をクリックし、リストから1つ以上の値を選択します。
  • セル参照を使用するには:

    1. [ Cells ]をクリックします。
    2. セルまたはセルの範囲を選択します。
    3. カーソルをクリックアイコン。 をクリックします。

次の表では、利用可能な各フィルターと想定される入力について説明します。

フィルタ

期待値の入力

説明

IS NULL

なし

列の値が null である行を検索します。

IS NOT NULL

なし

列の値が null ではない行を検索します。

EQUALS

1つの数値または文字列

列の値が指定された値と正確に一致する行を検索します。

NOT EQUALS

1つの数値または文字列

列の値が指定された値と一致しない行を検索します。

STARTS WITH

1 つのテキスト文字列

列の値が指定されたテキストで始まる行を検索します。

ENDS WITH

1 つのテキスト文字列

Finds rows where the column value ends with the specified text.

CONTAINS

1 つのテキスト文字列

文字列内のどこかに指定されたテキストが含まれる行を検索します。

フィルタ

期待値の入力

説明

IS NULL

なし

列の値が null である行を検索します。

IS NOT NULL

なし

列の値が null ではない行を検索します。

EQUALS

1つの数値または文字列

列の値が指定された値と正確に一致する行を検索します。

NOT EQUALS

1つの数値または文字列

列の値が指定された値と一致しない行を検索します。

STARTS WITH

1 つのテキスト文字列

列の値が指定されたテキストで始まる行を検索します。

ENDS WITH

1 つのテキスト文字列

Finds rows where the column value ends with the specified text.

CONTAINS

1 つのテキスト文字列

文字列内のどこかに指定されたテキストが含まれる行を検索します。

計算フィールド​

計算フィールドとは、revenue および cost からコンピュートされる profit などの既存のデータから派生した列のことです。Excelアドインでは、 [データの選択 (Select data)] インポート方法を使用した計算フィールドの作成はサポートされていません。計算フィールドを追加するには、次のいずれかの方法を使用します。

  • Write SQL : Write SQL インポート方法を使用して、任意のSQL式で計算列をコンピュートします。SQL クエリーの記述を参照してください。
  • Genie One :必要な計算列を使用してデータを返すようにGenie Oneに依頼し、結果をインポートします。Microsoft ExcelでのGenie Oneの使用を参照してください。

Databricks recommends using Genie One for calculated fields.

ExcelでのDatabricksカスタム関数の使用​

Excelアドインには、Excelの数式で使用してDatabricksからデータをインポートできるカスタム関数が用意されています。

テーブルを選択​

DATABRICKS.Table 関数は Unity Catalog テーブルからデータをインポートします。

構文:

Text
=DATABRICKS.Table(catalog_name.schema_name.table_name, [column1, ...], [limit])

パラメーター:

  • catalog_name.schema_name.table_name (必須):完全修飾テーブル名。
  • columns (optional): An array of column names to import.Omit this パラメーター to import all columns.
  • limit (オプション):インポートする行の最大数。すべての行を10MBの制限までインポートするには、このパラメーターを省略します。

例:

Text
=DATABRICKS.Table("main.default.customers", {"customer_id", "customer_name"}, 100)

この数式は、main.default.customersテーブルからcustomer_id列とcustomer_name列をインポートします(最大100行に制限されます)。

SQLを記述​

DATABRICKS.SQL 関数は、クエリー パラメーターを使用する SQL クエリーをランし、その結果を返します。

構文:

値を使用してパラメーターを指定します。

Text
=DATABRICKS.SQL("query_text", {parameter1_name, parameter1_value; ...})

セル範囲を使用してパラメーターを指定します。同じ行にあるセルで名前と値のパラメーターを定義します。

Text
=DATABRICKS.SQL("query_text", {param_name_cell: param_value_cell; ...})

パラメーター:

  • query_text (必須):実行するSQLクエリー。
  • parameters (必須): クエリーに代入するパラメーター値のマッピング。

例:

Text
=DATABRICKS.SQL("SELECT * FROM samples.bakehouse.sales_suppliers WHERE longitude > :long_param AND latitude > :lat_param LIMIT 10", {"long_param",20; "lat_param",10})

=DATABRICKS.SQL("SELECT * FROM samples.bakehouse.sales_suppliers WHERE city = :city", M4:N4)

この数式は、提供されたパラメーター値を使用して、売上データをlongitudeおよびlatitudeでフィルター処理するクエリーをランします。

クエリーの管理​

[Imports]ページから既存のインポートを管理します。

既存のインポートを編集する​

既存のインポートを編集するには:

  1. ExcelのDatabricksアドインペインで、 Imports tabをクリックします。
  2. 編集するインポートを検索します。
  3. インポートの横にある3点リーダーメニューをクリックします。
  4. インポートを編集するには、 編集 をクリックしてください。

データを更新​

Excel アドインでは、データが自動的に更新されません。データの更新方法は、データのインポート方法によって異なります。インポート方法(テーブルの選択、SQL クエリーの記述、ピボット テーブルの作成)を使用してインポートされたデータは、 [Imports] tab から更新されます。カスタム関数を使用してインポートされたデータは、再計算する必要があります。

Databricksからの最新の値でインポートを更新します。アドインによって元のクエリーまたはテーブルの選択が再度ランされ、ワークシートが最新のデータで更新されます。

  • 単一のインポートを更新するには:

    1. ExcelのDatabricksアドインペインで、 Imports tabをクリックします。
    2. 更新するインポートの横にある 更新アイコン。 更新をクリックします。
  • すべてのインポートを更新するには:

    1. Databricks アドイン ペインで [すべて更新] をクリックします。
重要

データを更新するとき、Excel アドインは指定されたテーブル内の既存のすべてのデータをクリアし、Databricks から最新のデータを再読み込みします。テーブルに追加したカスタム列は、更新プロセス中に削除されます。

DATABRICKS.Table や DATABRICKS.SQL などのカスタム関数からインポートされたデータは、ワークブックを再度開いたときに更新されません。カスタム関数からインポートされたデータを更新するには、Databricks アドインにサインインし、ワークブックを再計算するか、カスタム関数が参照する値を変更します。

共有の影響​

Databricksデータを含むExcelブックを共有する場合は、次のデータアクセスとセキュリティへの影響を考慮してください。

インポートされたデータへの可視性​

受信者がインポートを更新すると、アドインは受信者の Unity Catalog 権限を使用します。基になるデータへのアクセス権がない場合、更新は失敗します。

データのプライバシーが懸念されるワークブックでは、次の回避策を使用できます。

  1. 必要なすべての数式とインポートが含まれるワークブックを作成します。
  2. シートからインポートしたデータを削除します。
  3. ワークブックを受信者と共有します。
  4. 受信者にデータを更新してもらいます。

受信者は、Unity Catalog のアクセス許可に基づいて、アクセスできるデータのみを表示します。

ワークスペースとデータアセットへのアクセス​

  • ブックで参照されている Unity Catalog オブジェクトへのアクセス権がないユーザーは、データを更新できません。データを更新するには、ユーザーが Unity Catalog の基になるテーブルとビューに対する読み取り権限を持っている必要があります。
  • 既存のインポートを編集するには、ユーザーが Databricks 内の基底のテーブルにアクセスできる必要があります。

クエリーの表示設定​

Users with edit access to the workbook can view the クエリー used to generate the data through the Databricks Add-in, even if they don't have access to the underlying data in Unity Catalog.

Templateとして保存する代替方法​

Databricks Excel アドインでは、ワークブックを Template として保存することはサポートされていませんが、ワークブックを共有して他のユーザーがインポートされたクエリーを確認できるようにすることはできます。データアクセスとセキュリティの考慮事項については、共有の影響を参照してください。

ワークブックを Template として共有する回避策として、次のいずれかを実行します。

  • Share the local file with another user.The recipient can rename the file and see the saved クエリー.
  • SharePointで、ワークブックを他のユーザーと共有します。他のユーザーがファイルをdownloadしたとき、保存されたインポートは保持されます。

制限事項​

  • カスタム関数 : カスタム関数の場合、SQL実行APIの制限により、クエリー結果は25 MiBに制限されます。
  • データ読み込み :ブック内のいずれかのセルが編集モードになっていると、データの読み込みに失敗する場合があります。
  • Excel Desktop の行数制限 :Excel Desktop では、シートあたり最大 1,048,576 行がサポートされます。
  • Excel for the web のファイルサイズ制限 :Excel for the web では、表示および編集用として最大約 25 MB のブックファイルサイズがサポートされます。
  • ライブクエリーパフォーマンス : ライブクエリー がオンの場合、ピボットを編集するたびにSQL Warehouseに対して新しいクエリーが実行されます。結果はローカルにキャッシュされないため、大きなピボットに対する頻繁な編集によって、レイテンシーや warehouse のコストが増加する可能性があります。