Azure Databricks Excel アドインを使用したデータのインポートとクエリ

注意

Azure Databricks Excel アドインは、Azure GovernmentまたはAzure中国リージョンでは使用できません。

Azure Databricks ExcelアドインはAzure DatabricksワークスペースをMicrosoft Excelに接続し、管理されたLakehouseデータを直接スプレッドシートに取り込みます。

このページでは、Azure Databricks Excel アドインを使用して、Excel で Azure Databricks からデータをインポートおよび分析する方法について説明します。 SQL の知識が不要な直感的なインターフェイスを使用して、Azure Databricks テーブルを参照およびインポートできます。 アドインではカスタム SQL クエリを柔軟に実行できます。省略可能です。

前提 条件

SQL ウェアハウスを選択する

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

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

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

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

注意

ピボット テーブル、SQL クエリ、およびカスタム関数を使用して、Unity カタログ メトリック ビューをインポートできます。

ピボット テーブルを作成する

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

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

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

  3. [ ピボット データ ] チェック ボックスをオンにします。

  4. (任意)クエリを実行し、ピボットテーブルを作成する際に新しいワークシートを自動的に更新するために 「ライブクエリ 」を選択してください。 詳細は 「ライブクエリ」をご覧ください。

  5. 各フィールドを適切な領域にドラッグして、 行、 列、 および値 を構成します。

  6. (省略可能)フィルターを追加 します。 フィルターの詳細については、「 インポートされたデータのフィルター処理」を参照してください。

  7. (省略可能)インポートの行制限を設定します。

  8. 結果をインポートします。 次のいずれかのオプションを選びます。

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

    注意

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

ピボット テーブルで Unity カタログ メトリックを操作すると、結果に Sum(measure) 表示される場合があります。 これは予期される動作であり、追加の集計は行われません。 Excel では、値に集計関数が必要ですが、データに一意の値が含まれているため、集計は行われません。

ライブクエリ

Live Query はピボットクエリを実行し、ピボットの編集中にワークシートを自動的に更新するため、Import をクリックした後ではなく、フィールドを更新するたびに結果を確認できます。 ライブクエリは、少なくとも1行または1列、1つの値を変更した後にクエリを再実行します。 標準フローに戻すには、その機能をオフにしてください。

ライブクエリが有効になると、ピボットテーブルは常に新しいシートで作成・更新されます。 さらに、ピボットビルダーにはインポートの代わりに「インポート保存」ボタンが表示されます。

もしExcelがライブピボット編集中に閉じた場合、「インポート」タブに復元オプションが表示され、そのインポートの最後に保存した設定を復元できます。

テーブルの選択

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

Azure Databricks テーブルからデータをインポートするには、次の操作を行います。

  1. Azure Databricks Excel アドイン ウィンドウの [新しいインポート] タブで、[インポート方法] として [データの選択] を選択します。
  2. カタログ エクスプローラーからインポートするテーブルを選択します。 スライダー アイコン を使用して、所有者、認定状態、およびその他のプロパティでカタログをフィルター処理できます。
  3. [選択] をクリックします。
  4. [ 列] で下矢印をクリックし、インポートしない列の選択を解除するか、すべての列を選択したままにしてテーブル全体をインポートします。
  5. (省略可能)フィルターを追加 します。 フィルターの詳細については、「 インポートされたデータのフィルター処理」を参照してください。
  6. (省略可能)インポートのサンプルを表示するには、[ プレビュー] をクリックします。
  7. (省略可能)インポートする行数を制限する行制限を設定します。
  8. (省略可能)インポートしたデータを識別するには、 インポート名を入力します。
  9. [ 出力先] で、新しいシートまたは現在のシートにデータをインポートすることを選択します。 現在のシートにインポートすると、入力したセル参照からデータが開始されます (既定では A1)。
  10. 結果をインポートします。 次のいずれかを選択してください:
    • [ 保存してインポート] をクリックして、Excel ブックで再利用するためにクエリを保存し、結果をインポートします。
    • 下矢印をクリックし、[ 結果のインポート ] をクリックして、クエリを保存せずに結果をインポートします。 インポートの編集を続行する場合は、このオプションを使用します。

SQL クエリを記述する

Sql の書き込みインポート メソッドは、SQL 関数とストアド プロシージャをサポートしています。

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

  1. Azure Databricks Excel アドイン ウィンドウの [新しいインポート] タブで、インポート方法として [SQL の書き込み] を選択します。

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

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

    • エディターで SQL クエリを記述します。 アクセス許可を持っている Unity カタログ内の任意のテーブルに対してクエリを実行できます。

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

      注意

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

  4. (省略可能)クエリ パラメーターを追加するには、[パラメーター] の横にある [+追加] をクリック します。 パラメーターをクリックし、 パラメーター名 と パラメーター値を入力します。

    • パラメーター値には、特定の値を入力するか、ボックスと矢印ボタンをクリックしてセル参照を指定できます。 セルまたはセル範囲を選択し、矢印をクリックしてパラメーター値を自動的に入力します。
  5. [ 出力先] で、新しいシートまたは現在のシートにデータをインポートすることを選択します。 現在のシートにインポートすると、入力したセル参照からデータが開始されます (既定では A1)。

  6. クエリ結果をプレビューするには、[ 実行] をクリックします。

  7. 結果をインポートします。 次のいずれかのオプションを選びます。

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

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

インポートされたデータをフィルター処理する

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

文字列フィルターは大文字と小文字を区別せず、カスケード式です。 複数のフィルターを適用すると、それぞれのフィルターで利用可能な値は、その前のフィルターの選択によって決まります。 例えば、国でフィルターをしてから都市のフィルターを追加すると、都市フィルターは選択した国内の都市のみを表示します。

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

  • 値を入力します。
  • 最大5,000個の異なるフィルター値のリストを生成するには、以下を利用できます:
    1. [ 値]、[ フィルター値の取得] の順にクリックします。
    2. 下矢印をクリックし、一覧から 1 つ以上の値を選択します。
  • セル参照を使用するには:
    1. セル をクリックします。
    2. セルまたはセル範囲を選択します。
    3. カーソルクリック アイコン をクリックします。

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

Filter 想定される入力 Description
IS NULL なし 列の値が null の行を検索します。
IS NOT NULL なし 列の値が null ではない行を検索します。
EQUALS 1 つの数値またはテキスト文字列 列の値が指定した値と正確に一致する行を検索します。
NOT EQUALS 1 つの数値またはテキスト文字列 列の値が指定した値と一致しない行を検索します。
STARTS WITH 1 つのテキスト文字列 列の値が指定したテキストで始まる行を検索します。
ENDS WITH 1 つのテキスト文字列 列の値が指定したテキストで終わる行を検索します。
CONTAINS 1 つのテキスト文字列 列の値に文字列内の指定したテキストが含まれている行を検索します。

計算済フィールド

計算フィールドとは、revenueやcostから計算された既存のデータから導き出された列profitです。 ExcelアドインはSelectデータインポートメソッドを使った計算フィールドの作成をサポートしていません。 計算されたフィールドを追加するには、以下のいずれかの方法を用いてください。

  • SQLを書く:SQLインポートを 書き 込む方法を使って、任意のSQL式で計算された列を計算します。 「 SQLクエリの作成」を参照してください。
  • Genie One:Genie Oneに必要な計算された列を含むデータを返してもらい、その結果をインポートします。 Microsoft ExcelのGenie Oneを使うことを参照してください。

Databricksは計算フィールドにはGenie Oneの使用を推奨しています。

Excel Azure Databricksカスタム関数を使用する

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

テーブルを選択する

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

構文 :

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

パラメーター:

  • catalog_name.schema_name.table_name (必須): 完全修飾テーブル名。
  • columns (省略可能): インポートする列名の配列。 すべての列をインポートするには、このパラメーターを省略します。
  • limit (省略可能): インポートする行の最大数。 このパラメーターを省略すると、最大 10 MB の制限まで、すべての行がインポートされます。

Example:

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

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

SQL の書き込み

DATABRICKS.SQL関数は、クエリ パラメーターを使用して結果を返す SQL クエリを実行します。

構文 :

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

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

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

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

パラメーター:

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

Example:

=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で売上データをフィルター処理するクエリを実行します。

クエリを管理する

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

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

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

  1. Excel の Azure Databricks アドイン ウィンドウで、[ インポート ] タブをクリックします。
  2. 編集するインポートを見つけます。
  3. インポートの横にある 3 点メニューをクリックします。
  4. [ 編集] をクリックしてインポートを編集します。

データの更新

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

Azure Databricksの最新の値でインポートを更新します。 アドインは、元のクエリまたはテーブルの選択を再度実行し、新しいデータでワークシートを更新します。

  • 1 つのインポートを更新するには:
    1. Excel の Azure Databricks アドイン ウィンドウで、[ インポート ] タブをクリックします。
    2. 更新アイコン をクリックして、更新したいインポートの横にあるインポートを更新してください。
  • すべてのインポートを更新するには:
    1. Azure Databricks アドイン ウィンドウで Refresh All をクリックします。

Important

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

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

共有による影響

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

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

受信者がインポートを更新すると、アドインは受信者の Unity カタログのアクセス許可を使用します。 基になるデータにアクセスできない場合、更新は失敗します。

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

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

受信者には、Unity カタログのアクセス許可に基づいてアクセス権を持つデータのみが表示されます。

ワークスペースとデータ資産へのアクセス

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

クエリの可視性

ブックへの編集アクセス権を持つユーザーは、Unity カタログ内の基になるデータにアクセスできない場合でも、Azure Databricks アドインを介してデータを生成するために使用されるクエリを表示できます。

テンプレートとして保存する代わりの方法

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

ワークブックをテンプレートとして共有するための回避策として、次のいずれかの操作を行ってください。

  • ローカル ファイルを別のユーザーと共有します。 受信者はファイルの名前を変更し、保存されたクエリを表示できます。
  • SharePoint で、ブックを別のユーザーと共有します。 別のユーザーがファイルをダウンロードすると、保存されたインポートは保持されます。

Limitations

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