この記事では、差分共有を使用して共有されているデータにアクセスする方法について説明します。
Delta Sharing とデータ受信者
Delta Sharing は、セキュアなデータ共有のためのオープンスタンダードです。 このコンテキストでは、 data プロバイダーと呼ばれる Databricks ユーザーは Azure Databricks の差分共有を使用して、 data 受信者と呼ばれる組織外のユーザーまたはグループとデータを共有できます。
Databricks-to-Databricks 共有とオープン共有
データにアクセスする方法は、ご自分が Databricks ユーザーかどうか、およびデータ プロバイダーが "Databricks から Databricks への" 共有用、または "オープン共有" 用に、共有するデータを構成しているかどうかによって異なります。
Databricks-to-Databricks モデルでは、Unity Catalogで有効になっている Databricks ワークスペースのユーザーである必要があります。 ご自分のチームのメンバーが Unity Catalog メタストアの一意の識別子をデータ プロバイダーに提供し、データ プロバイダーはそれを使用して安全な共有接続を作成します。 共有データがワークスペースでアクセスできるようになります。 必要に応じて、チームのメンバーがそのデータに対してきめ細かいアクセス制御を構成します。
オープン共有モデルでは、任意のツール (Databricks を含む) を使用して共有データにアクセスできます。 データ プロバイダーから、セキュリティで保護されたチャネル経由でアクティブ化 URL またはポータル リンクが送信されます。 それに従って、共有されたデータにアクセスできる資格情報ファイルまたは URL をダウンロードします。
共有データは、Databricks によって直接提供されるのではなく、Azure Databricks で実行しているデータ プロバイダーによって提供されます。
注
Databricks は、データ受信者による共有データの使用とアクセスに関する情報を収集し (そのような情報に関連して資格情報ファイルを使用してデータにアクセスする個人または会社を特定することを含む)、該当するデータ プロバイダーと共有することができます。
自分と共有されているデータにアクセスする
データにアクセスする方法は、データ プロバイダーがデータの共有に使用しているのが、オープン共有プロトコルか、または Databricks-to-Databricks 共有プロトコルかによって異なります。 「Databricks-to-Databricks 共有とオープン共有」を参照してください。
Databricks-to-Databricks モデルでアクセスする
Databricks-to-Databricks モデルでは、次の手順を行います。
データ プロバイダーから、お使いの Databricks ワークスペースに関連付けられている Unity Catalog メタストアの一意の識別子を検索する手順が送信されるので、それを送信します。
共有識別子は、メタストアのクラウド、リージョン、UUID (メタストアの一意識別子) で構成される文字列であり、
<cloud>:<region>:<uuid>
形式です。 たとえば、「aws:eu-west-1:b0c978c8-3e68-4cdf-94af-d05c120ed1ef
」のように入力します。Catalog Explorer を使用して共有識別子を取得するには、次の手順を行います:
Azure Databricks ワークスペースで、[
カタログ。
[カタログ] ウィンドウの上部にある
をクリックします。歯車アイコンをクリックし、[差分共有] を選択します。
または、[クイック アクセス] ページで、[Delta Sharing >] ボタンをクリックします。
[自分と共有] タブで、右上にある Databricks 共有組織名をクリックし、[共有識別子のコピー] を選択します。
ノートブックまたは Databricks SQL クエリを使用して共有識別子を取得するには、既定の SQL 関数
CURRENT_METASTORE
を使用します。 ノートブックを使用する場合は、共有データへのアクセスに使用するワークスペース内の 標準または専用のアクセス モードで実行する必要があります。SELECT CURRENT_METASTORE();
データ プロバイダーにより次が作成されます。
- 自分と組織内のデータにアクセスするユーザーを表す Databricks アカウントの "受信者"。
- 共有するテーブル、ボリューム、ビューを表す "共有"。
ご自分と共有されているデータにアクセスします。 ご自分またはチームの誰かが、必要に応じて、そのデータに対する詳細なデータ アクセスをユーザーに構成できます。 「Databricks 間 Delta Sharing を使用して共有されたデータを読み取る (受信者の場合)」を参照してください。
オープン共有モデルでアクセスを取得する
オープン共有モデルでは、次の手順を実行します。
データ プロバイダーにより次が作成されます。
- 自分と組織内のデータにアクセスするユーザーを表す Databricks アカウントの "受信者"。
- ご自分と共有されるテーブルとパーティションを表す "共有"。
データ プロバイダーから、アクティブ化 URL (セキュリティで保護されたチャネル経由) またはポータル URL が送信されます。 それに従って、自分と共有されているデータにアクセスできる資格情報ファイルまたは URL をダウンロードします。
ベアラー トークンと OAuth クライアント資格情報の両方がサポートされています。
重要
アクティブ化リンクを他のユーザーと共有しないでください。 資格情報ファイルをダウンロードできるのは、1 回だけです。 資格情報ファイルをダウンロードした後に、再度アクティベーション リンクをクリックすると、[資格情報ファイルのダウンロード] ボタンが無効になります。
お使いになる前にアクティブ化リンクを紛失した場合は、データ プロバイダーにお問い合わせください。
安全な場所に資格情報ファイルを保存してください。
共有データにアクセスできるユーザー のグループ外のユーザーと資格情報ファイルを共有しないでください。 資格情報ファイルを組織内のユーザーと共有する必要がある場合は、Databricks はパスワードマネージャーの使用を推奨します。
共有データの読み取り
Delta Sharing を使用して安全に共有されているデータを読み取る方法は、資格情報ファイル (オープン共有モデル) を受け取ったか、Databricks ワークスペースを使用していて、共有識別子 (Databricks-to-Databricks モデル) をデータ プロバイダーに提供したかによって異なります。
資格情報ファイルを使用して共有データを読み取る (共有を開く)
ベアラー トークンを使用して Delta Sharing オープン共有プロトコルを使用してデータが共有されている場合は、ダウンロードした資格情報ファイルを使用してデータ プロバイダーのアカウントに対する認証を行い、共有データを読み取ります。 基になるトークンが有効であり、プロバイダーがデータを共有し続ける限り、アクセス権は保持されます。 プロバイダーはトークンの有効期限とローテーションを管理します。 データの更新は、ほぼリアルタイムで利用できます。 共有データのコピーを読み取って作成することはできますが、ソース データを変更することはできません。
Azure Databricks、Apache Spark、pandas、Power BI の資格情報ファイルを使用して共有データにアクセスして読み取る方法を学ぶには、「 ベアラー トークンを使用したオープン共有 (受信者の場合) による差分共有を使用して共有されたデータの読み取り」を参照してください。
OIDC フェデレーションを使用して共有データを読み取る (共有を開く)
データが OIDC フェデレーションを使用して Delta Sharing オープン共有プロトコルで共有されている場合は、送信された URL を利用してデータプロバイダーのアカウントに認証し、共有データを読み取ります。 プロバイダーがデータを共有し続ける限り、アクセスは保持されます。 データの更新は、ほぼリアルタイムで利用できます。 共有データのコピーを読み取って作成することはできますが、ソース データを変更することはできません。
Tableau および Power BI の OIDC トークン フェデレーション フローを使用して共有データにアクセスし読み取る方法については、ユーザーからマシンへのフロー(オープン共有)で Open ID Connect (OIDC) フェデレーションを使用して Delta Sharing シェアを受信する方法に関するページを参照してください。 Python クライアント アプリで OIDC トークン フェデレーション フローを使用して共有データにアクセスして読み取る方法については、「Python クライアントを使用して Delta Sharing 共有を受信するおよび Open ID Connect (OIDC) フェデレーションをマシン間通信フロー (オープン共有) で実施する方法」を参照してください。
Databricks-to-Databricks 共有を使用した共有データを読み取る
Databricks-to-Databricks モデルを使用してデータが共有されている場合、共有データにアクセスするための資格情報ファイルは必要ありません。 Databricks はセキュリティで保護された接続を処理し、共有データは Databricks ワークスペースで自動的に検出が可能です。
Databricks ワークスペースでその共有データの検索、読み取り、管理を行う方法については、「Databricks 間 Delta Sharing を使用して共有されたデータを読み取る (受信者の場合)」を参照してください。
共有データの使用状況を監査する
Azure Databricks ワークスペースにアクセスできる場合は、Delta Sharing を使用して組織内の誰がどのデータにアクセスしているのかを把握するために、Azure Databricks 監査ログを使用できます。 「データ共有の監査と監視」を参照してください。