OneLake のショートカット

Microsoft OneLake のショートカットを使用すると、企業全体に対して 1 つの仮想データ レイクを作成することで、ドメイン、クラウド、アカウントにまたがってデータを統合できます。 すべての Fabric エクスペリエンスと分析エンジンが、統合された名前空間経由で、Azure、アマゾン ウェブ サービス (AWS)、OneLake などの既存のデータ ソースに直接接続できます。 アクセス許可と資格情報はすべて OneLake が管理するため、各 Fabric エクスペリエンスを各データ ソースに接続するように個別に構成する必要はありません。 さらに、ショートカットを使用して、データのエッジ コピーを排除し、データ コピーとステージングに関連するプロセス待機時間を短縮できます。

ショートカットとは

ショートカットとは、他の保存場所を指す OneLake 内のオブジェクトです。 場所は、OneLake の内部にも外部にもできます。 ショートカットが指す場所は、ショートカットの ターゲット パスと呼ばれます。 ショートカットが表示される場所は、ショートカット パスと呼ばれます。 ショートカットは OneLake のフォルダーとして表示され、OneLake にアクセスできる任意のエクスペリエンスまたはサービスが使用できます。 ショートカットはシンボリック リンクのように動作します。 これらはターゲットから独立したオブジェクトです。 ショートカットを削除しても、ターゲットは影響を受けません。 ターゲット パスを移動、名前変更、または削除すると、ショートカットが中断される可能性があります。

ショートカットが他の場所に保存されているファイルとフォルダーを接続するしくみを示す図。

ショートカットを作成できる場所

レイクハウス および Kusto 照会言語 (KQL) データベースにショートカットを作成できます。 さらに、これらのアイテム内に作成されたショートカットは、他の OneLake の場所、Azure Data Lake Storage (ADLS) Gen2、Amazon S3 ストレージ アカウント、Dataverse を指すことができます。

Fabric UI を使用すると、ショートカットを対話形式で作成できます。また、REST API を使用してプログラムでショートカットを作成することもできます。

レイクハウス

レイクハウスでショートカットを作成するときは、アイテムのフォルダー構造を理解する必要があります。 レイクハウスは、Tables フォルダーと Files フォルダーの 2 つの最上位フォルダーで構成されます。 Tables フォルダーはレイクハウスの管理部分を表し、Files フォルダーはレイクハウスのアンマネージド部分です。 Tables フォルダーでは、最上位レベルでのみショートカットを作成できます。 Tables フォルダーの他のサブディレクトリでは、ショートカットはサポートされません。 ショートカットのターゲットに Delta\Parquet 形式のデータが含まれている場合、レイクハウスはメタデータを自動的に同期し、フォルダーをテーブルとして認識します。 Files フォルダーでは、ショートカットを作成できる場所に制限はありません。 これらは、フォルダー階層の任意のレベルで作成できます。 テーブルの検出は、Files フォルダーでは行われません。

レイク ビューとテーブル ビューを並べて示す図。

KQL データベース

KQL データベースにショートカットを作成すると、データベースの Shortcuts フォルダーに表示されます。 KQL データベースは、ショートカットを外部テーブルと同様に扱います。 ショートカットに対してクエリを実行するには、Kusto 照会言語の external_table 関数を使用します。

KQL データベース内のショートカットのスクリーンショット。

ショートカットにアクセスできる場所

OneLake 内のデータにアクセスできる Fabric または Fabric 以外のサービスが、ショートカットを利用できます。 ショートカットは、OneLake API 経由でデータにアクセスするすべてのサービスに対して透過的です。 ショートカットは単に、レイク内の別のフォルダーとして表示されます。 Spark、SQL、リアルタイム分析、Analysis Services はすべて、データのクエリ時にショートカットを使用できます。

Spark

Spark ノートブックと Spark ジョブは、OneLake で作成されたショートカットを利用できます。 相対ファイル パスを使用して、ショートカットからデータを直接読み取ることができます。 さらに、レイクハウスの Tables セクションにショートカットを作成し、それがデルタ形式の場合は、Spark SQL 構文を使用してマネージド テーブルとして読み取ることもできます。

df = spark.read.format("delta").load("Tables/MyShortcut")
display(df)
df = spark.sql("SELECT * FROM MyLakehouse.MyShortcut LIMIT 1000")
display(df)

Note

デルタ形式は、名前にスペース文字を含むテーブルをサポートしません。 名前にスペースを含むショートカットは、レイクハウス内のデルタ テーブルとして検出されません。

SQL

レイクハウスの [テーブル] セクションのショートカットを、レイクハウスの SQL 分析エンドポイント経由で読み取ることもできます。 SQL 分析エンドポイントには、レイクハウスのモード セレクター、または SQL Server Management Studio (SSMS) 経由でアクセスできます。

SELECT TOP (100) *
FROM [MyLakehouse].[dbo].[MyShortcut]

リアルタイム分析

KQL データベースのショートカットは外部テーブルとして認識されます。 ショートカットに対してクエリを実行するには、Kusto 照会言語の external_table 関数を使用します。

external_table('MyShortcut')
| take 100

Analysis Services

Tables セクションにショートカットを含むレイクハウス用に、セマンティック モデルを作成できます。 セマンティック モデルが Direct Lake モードで実行されている場合、Analysis Services はショートカットから直接データを読み取ることができます。

Fabric 以外

Fabric 外のアプリケーションとサービスも、OneLake API 経由でショートカットにアクセスできます。 OneLake は、ADLS Gen2 と Blob Storage API のサブセットをサポートします。 OneLake API の詳細については、API を使用した OneLake アクセスに関する記事を参照してください。

https://onelake.dfs.fabric.microsoft.com/MyWorkspace/MyLakhouse/Tables/MyShortcut/MyFile.csv

ショートカットの種類

OneLake ショートカットは、複数のファイル システム データ ソースをサポートします。 これには、内部 OneLake の場所、Azure Data Lake Storage (ADLS) Gen2、Amazon S3、Dataverse が含まれます。

内部 OneLake のショートカット

内部 OneLake のショートカットを使用すると、既存の Fabric アイテム内のデータを参照できます。 これらのアイテムには、レイクハウス、KQL データベース、データ ウェアハウスが含まれます。 ショートカットは、同じアイテム内か、同じワークスペース内のアイテム全体にまたがるか、異なるワークスペース内のアイテム全体にまたがるフォルダーの場所を指すことができます。 アイテム全体にまたがるショートカットを作成するときは、アイテムの種類が一致する必要はありません。 たとえば、データ ウェアハウス内のデータを指すショートカットをレイクハウスに作成できます。

ユーザーが別の OneLake の場所へのショートカット経由でデータにアクセスすると、ショートカットのターゲット パス内のデータへのアクセスを承認するために、呼び出し元のユーザーの ID が使用されます*。 このユーザーがデータを読み取るためには、ターゲットの場所のアクセス許可を持っている必要があります。

重要

Power BI セマンティック モデルまたは T-SQL を介してショートカットにアクセスする場合、 呼び出し元のユーザーの ID はショートカット ターゲットに渡されません。代わりに、呼び出し元のアイテム所有者の ID が渡され、呼び出し元ユーザーへのアクセスが委任されます。

ADLS のショートカット

ADLS Gen2 ストレージ アカウントへのショートカットを作成することもできます。 ADLS へのショートカットを作成すると、ターゲット パスは階層型名前空間内の任意のフォルダーを指すことができます。 ターゲット パスには、少なくともコンテナー名を含める必要があります。

Access

ADLS のショートカットは、ストレージ アカウントの DFS エンドポイントを指す必要があります。 例: https://accountname.dfs.core.windows.net/

ストレージ アカウントがストレージ ファイアウォールによって保護されている場合は、信頼されたサービス アクセスを構成できます。 「信頼されたワークスペース アクセス」を参照してください

承認

ADLS のショートカットは、委任された承認モデルを使用します。 このモデルでは、ショートカット作成者が ADLS ショートカットの資格情報を指定し、そのショートカットへのすべてのアクセスがその資格情報を使用して承認されます。 サポートされる委任の種類は、組織アカウント、アカウント キー、Shared Access Signature (SAS)、サービス プリンシパルです。

  • 組織アカウント - ストレージ アカウントのストレージ BLOB データ閲覧者、ストレージ BLOB データ共同作成者、またはストレージ BLOB データ所有者ロールを持っている必要があります
  • Shared Access Signature (SAS) - 少なくとも「読み取り」、「一覧表示」、「実行」のアクセス許可を含める必要があります
  • サービス プリンシパル - ストレージ アカウントのストレージ BLOB データ閲覧者、ストレージ BLOB データ共同作成者、またはストレージ BLOB データ所有者ロールを持っている必要があります

Note

ADLS Gen 2 ストレージ アカウントで階層型名前空間を有効にする必要があります。

S3 のショートカット

Amazon S3 アカウントへのショートカットを作成することもできます。 Amazon S3 へのショートカットを作成するとき、ターゲット パスには少なくともバケット名を含める必要があります。 S3 は階層型名前空間をネイティブにはサポートしていませんが、プレフィックスを使用してディレクトリ構造を模倣できます。 ショートカット パスにプレフィックスを含めて、ショートカット経由でアクセスできるデータのスコープをさらに絞り込むことができます。 S3 のショートカット経由でデータにアクセスすると、プレフィックスがフォルダーとして表されます。

Access

S3 のショートカットは、S3 バケットの https エンドポイントを指す必要があります。

例: https://bucketname.s3.region.amazonaws.com/

Note

S3 ショートカットを機能させるために、S3 アカウントの S3 パブリック アクセスのブロック 設定を無効にする必要はありません。

S3 エンドポイントへのアクセスは、ストレージ ファイアウォールまたは仮想プライベート クラウドによってブロックされないようにする必要があります。

承認

S3 のショートカットは、委任された承認モデルを使用します。 このモデルでは、ショートカット作成者が S3 ショートカットの資格情報を指定し、そのショートカットへのすべてのアクセスがその資格情報を使用して承認されます。 サポートされる委任された資格情報は、IAM ユーザーのキーとシークレットです。

IAM ユーザーは、ショートカットが指しているバケットに対して次のアクセス許可を持っている必要があります。

  • S3:GetObject
  • S3:GetBucketLocation
  • S3:ListBucket

Note

S3 のショートカットは読み取り専用です。 IAM ユーザーのアクセス許可に関係なく、書き込み操作はサポートされません。

Google Cloud Storage のショートカット (プレビュー)

GOOGLE Cloud Storage (GCS) へのショートカットは、GCS 用 XML API を使用して作成できます。 Google Cloud Storage へのショートカットを作成するとき、ターゲット パスには少なくともバケット名を含める必要があります。 また、ストレージ階層内で指すプレフィックス/フォルダーをさらに指定することで、ショートカットのスコープを制限することもできます。

アクセス

GCS ショートカットの接続を構成する場合は、ストレージ サービスのグローバル エンドポイントを指定するか、バケット固有のエンドポイントを使用できます。

  • グローバル エンドポイントの例: https://storage.googleapis.com
  • バケット固有のエンドポイントの例: https://<BucketName>.storage.googleapis.com

承認

GCS のショートカットは、委任された承認モデルを使用します。 このモデルでは、ショートカット作成者が S3 ショートカットの資格情報を指定し、そのショートカットへのすべてのアクセスがその資格情報を使用して承認されます。 サポートされている委任された資格情報は、サービス アカウントまたはユーザー アカウントの HMAC キーとシークレットです。

アカウントには、GCS バケット内のデータにアクセスするためのアクセス許可が必要です。 バケット固有のエンドポイントがショートカットの接続で使用された場合、アカウントには次のアクセス許可が必要です。

  • storage.objects.get
  • stoage.objects.list

ショートカットの接続でグローバル エンドポイントが使用された場合、アカウントには次のアクセス許可も必要です。

  • storage.buckets.list

Note

GCS のショートカットは読み取り専用です。 使用されるアカウントのアクセス許可に関係なく、書き込み操作はサポートされません。

Dataverse ショートカット

Dataverse と Microsoft Fabric の直接統合により、組織は Dynamics 365 エンタープライズ アプリケーションとビジネス プロセスを Fabric に拡張できます。 この統合は、ショートカットを使用して実現されます。これは、PowerApps メーカー ポータルまたは Fabric を直接使用する 2 つの方法で作成できます。

PowerApps メーカー ポータルを使用したショートカットの作成

許可された PowerApps ユーザーは、PowerApps メーカー ポータルにアクセスし、Microsoft Fabric へのリンク機能を使用できます。 この 1 つのアクションから、Fabric にレイクハウスが作成され、Dataverse 環境の各テーブルに対してショートカットが自動的に生成されます。 詳細については、「Dataverse と Microsoft Fabric の直接統合」を参照してください。

Fabric を使用したショートカットの作成

ファブリック ユーザーは、Dataverse へのショートカットを作成することもできます。 ユーザーは、作成ショートカット UX から Dataverse を選択し、環境 URL を指定して、使用可能なテーブルを参照できます。 このエクスペリエンスにより、ユーザーはすべてのテーブルを取り込むのではなく、Fabric に取り込むテーブルを選択できます。

Note

Dataverse テーブルは、Fabric の作成ショートカット UX に表示される前に、Dataverse マネージド レイクで使用できる必要があります。 テーブルが Fabric から表示されない場合は、PowerApps メーカー ポータルの Microsoft Fabric へのリンク機能を使用します。

承認

Dataverse のショートカットは、委任された承認モデルを使用します。 このモデルでは、ショートカット作成者が Dataverse ショートカットの資格情報を指定し、そのショートカットへのすべてのアクセスがその資格情報を使用して承認されます。 サポートされている委任された資格情報の種類は、組織アカウント (OAuth2) です。 組織アカウントには、Dataverse マネージド レイク内のデータにアクセスするためのシステム管理者のアクセス許可が必要です。

Note

サービス プリンシパルは現在、Dataverse ショートカット承認ではサポートされていません。

キャッシュ

ショートカット キャッシュを使用すると、クラウド間のデータ アクセスに関連するエグレス コストを削減できます。 ファイルが外部ショートカットで読み取られる際、そのファイルは Fabric ワークスペースのキャッシュに格納されます。 後続の読み取り要求は、リモート ストレージ プロバイダーではなくキャッシュから行われます。 キャッシュされたファイルの保持期間は 24 時間です。 ファイルにアクセスするたびに、保持期間がリセットされます。 リモート ストレージ プロバイダー内のファイルがキャッシュ内のファイルよりも新しい場合、要求はリモート ストレージ プロバイダーから行われ、更新されたファイルはキャッシュに格納されます。 ファイルが 24 時間を超えてアクセスされていない場合は、キャッシュから消去されます。 サイズが 1 GB を超える個々のファイルはキャッシュされません。

Note

現在、ショートカット キャッシュは GCS、S3、S3 互換ショートカットでのみサポートされています。

ショートカットのキャッシュを有効にするには、[ワークスペースの設定] パネルを開きます。 [OneLake] タブを選択し、キャッシュ設定を [オン] に切り替え、[保存] をクリックします。

OneLake タブが選択されているワークスペース設定パネルのスクリーンショット。

ショートカットがクラウド接続を利用するしくみ

ADLS と S3 のショートカット承認は、クラウド接続を使用して委任されます。 新しい ADLS または S3 のショートカットを作成する場合、ユーザーは新しい接続を作成するか、データ ソースの既存の接続を選択します。 ショートカットの接続の設定は、バインド操作です。 バインド操作を実行できるのは、接続に対するアクセス許可を持つユーザーのみです。 ユーザーが接続に対するアクセス許可を持っていない場合、その接続を使用する新しいショートカットを作成することはできません。

Permissions

ショートカットのアクセス許可は、ショートカット パスとターゲット パスのアクセス許可の組み合わせによって制御されます。 ユーザーがショートカットにアクセスすると、2 つの場所の最も制限の厳しいアクセス許可が適用されます。 そのため、レイクハウスで読み取り/書き込みアクセス許可を持っているが、ショートカット ターゲットで読み取りアクセス許可のみを持つユーザーは、ショートカット ターゲット パスへの書き込みを許可されません。 同様に、レイクハウスで読み取りアクセス許可のみを持っているが、ショートカット ターゲットで読み取り/書き込みアクセス許可を持つユーザーも、ショートカット ターゲット パスへの書き込みはできません。

ワークスペースのロール

各ワークスペース ロールに対するショートカット関連のアクセス許可を次の表に示します。 詳細については、ワークスペース ロールに関する記事を参照してください。

機能 管理者 Member Contributor ビューアー
ショートカットを作成する 1 1 1 -
ショートカットのファイル/フォルダーのコンテンツを読み取る はい2 はい2 はい2 -
ショートカット ターゲットの場所に書き込む 3 3 3 -
TDS エンドポイント経由でレイクハウスの "Tables" セクションのショートカットからデータを読み取る はい イエス イエス はい

1 ユーザーは、ショートカットの場所での書き込みアクセス許可と、ターゲットの場所での読み取りアクセス許可以上を有するロールを持っている必要があります。

2 ユーザーは、ショートカットの場所とターゲットの場所の両方で読み取りアクセス許可を有するロールを持っている必要があります。

3 ユーザーは、ショートカットの場所とターゲットの場所の両方で書き込みアクセス許可を有するロールを持っている必要があります。

OneLake データ アクセス ロール (プレビュー)

OneLake データ アクセス ロール は、OneLake に格納されているデータにロールベースのアクセス制御 (RBAC) を適用できる新機能です。 Fabric アイテム内の特定のフォルダーに読み取りアクセス権を付与し、ユーザーまたはグループに割り当てるセキュリティ ロールを定義できます。 アクセス許可によって、ユーザーが Lakehouse UX、ノートブック、または OneLake API を使用してデータのレイク ビューにアクセスするときに表示されるフォルダーが決まります。 プレビュー機能が有効になっているアイテムの場合、OneLake データ アクセス ロールによって、ショートカットへのユーザーのアクセス権も決定されます。

管理者、メンバー、および共同作成者のロールのユーザーは、OneLake データ アクセス ロールが定義されているかどうかにかかわらず、ショートカットからデータを読み取るフル アクセス権を持ちます。 ただし、ワークスペース ロールで言及したショートカットのソースとターゲットの両方にアクセスする必要があります。

ビューアー ロール内のユーザー、またはユーザーと直接共有されているレイクハウスを持つユーザーは、ユーザーが OneLake データ アクセス ロールを介してアクセスできるかどうかに基づいてアクセスが制限されます。 ショートカット を使用したアクセス制御モデルの詳細については、「OneLake のデータ アクセス制御モデル」を参照してください。

ショートカットでの削除の処理

ショートカットは、連鎖削除を実行しません。 ショートカットに対して削除操作を実行すると、ショートカット オブジェクトのみが削除されます。 ショートカット ターゲット内のデータは変更されないままです。 ただし、ショートカット内のファイルまたはフォルダーに対して削除操作を実行し、ショートカット ターゲットに削除操作を実行するアクセス許可を持っている場合は、そのファイルやフォルダーがターゲット内で削除されます。 次の例は、この点を示しています。

削除の例

ユーザー A には、次のパスを含むレイクハウスがあります。

MyLakehouse\Files\MyShortcut\Foo\Bar

MyShortcut は、Foo\Bar ディレクトリを含む ADLS Gen2 アカウントを指すショートカットです。

ショートカット オブジェクトの削除

ユーザー A が、次のパスに対して削除操作を実行します。

MyLakehouse\Files\MyShortcut

この場合、MyShortcut はレイクハウスから削除されます。 ショートカットは連鎖削除を実行しないため、ADLS Gen2 アカウント Foo\Bar 内のファイルとディレクトリは影響を受けないままです。

ショートカットによって参照されるコンテンツの削除

ユーザー A が、次のパスに対して削除操作を実行します。

MyLakehouse\Files\MyShortcut\Foo\Bar

このケースでは、ユーザー A が ADLS Gen2 アカウントの書き込みアクセス許可を持っている場合、Bar ディレクトリが ADLS Gen2 アカウントから削除されます。

ワークスペースの系列ビュー

ワークスペース内の複数の Fabric アイテム間にショートカットを作成するとき、ワークスペースの系列ビューを使用してショートカットのリレーションシップを視覚化できます。 ワークスペース エクスプローラーの右上隅にある系列ビュー ボタン () を選択します。

系列ビュー画面のスクリーンショット。

Note

系列ビューのスコープは 1 つのワークスペースです。 選択したワークスペース外の場所へのショートカットは表示されません。

制限と考慮事項

  • Fabric アイテムあたりのショートカットの最大数は 100,000 です。 このコンテキストでは、項目という用語は、アプリ、レイクハウス、ウェアハウス、レポートなどを指します。
  • 1 つの OneLake パス内のショートカットの最大数は 10 です。
  • ショートカット リンクへの直接ショートカットの最大数は 5 です。
  • ADLS と S3 のショートカット ターゲット パスに、RCF 3986 セクション 2.2 の予約文字を含めることはできません。 使用できる文字については、「RFC 3968 セクション 2.3」を参照してください。
  • OneLake のショートカット名、親パス、ターゲット パスに "%" や "+" の文字を含めることはできません。
  • ショートカットでは、ラテン文字以外の文字はサポートされません。
  • Copy BLOB API は、ADLS または S3 のショートカットではサポートされません。
  • copy 関数は、ADLS コンテナーを直接指すショートカットでは機能しません。 ADLS のショートカットは、コンテナーの少なくとも 1 レベル下にあるディレクトリに対して作成することをお勧めします。
  • ADLS または S3 のショートカット内に追加のショートカットを作成することはできません。
  • 現在のところ、データ ウェアハウスとセマンティック モデルへのショートカットの系列は使用できません。