メタデータのスキャンを実行する

次の短いチュートリアルでは、スキャナー API を使用して組織の Fabric 項目からメタデータを取得する方法を示します。 これは、Fabric の管理者が組織でメタデータ スキャンを設定したと想定しています。

メタデータ スキャンが返す成果物とサブ成果物のメタデータの一覧については、Admin - WorkspaceInfo GetScanResult API に関するドキュメントを参照してください。

スキャナー API は次のとおりです。 パブリック クラウドとソブリン クラウドの両方をサポートしています。

重要

スキャン用に開発したアプリでは、標準の委任管理者アクセス トークンまたはサービス プリンシパルのいずれかを使って認証することができます。 この 2 つの認証パスは相互に排他的です。 サービス プリンシパルに従って実行する場合、Power BI 管理者の同意が必要なアクセス許可をアプリに設定することはできません。 詳細については、「読み取り専用の管理 API に対してサービス プリンシパル認証を有効にする」を参照してください。

手順 1: フル スキャンを実行する

workspaces/modifiedmodifiedSince パラメーターなしで呼び出して、テナント内のワークスペース ID の完全な一覧を取得します。 このスキャンにより、個人用ワークスペースや共有ワークスペースなど、テナント内のすべてのワークスペースが取得されます。 スキャンから個人用ワークスペースを除外する場合は、workspaces/modified excludePersonalWorkspaces パラメーターを使用します。

一覧を最大で 100 のワークスペースのチャンクに分割します。

100 ワークスペースの各チャンクについて:

workspaces/getInfo を呼び出して、これらの 100 ワークスペースのスキャン呼び出しをトリガーします。 次の手順で使用する応答で scanId を受け取ります。 location ヘッダーでは、次の手順で呼び出す Uniform Resource Identifier (URI) も受け取ります。

注意

同時に実行できる呼び出しは 16 回以下です。 呼び出し元は、別の呼び出しを実行する前に、scanStatus API からのスキャンの成功または失敗の応答を待つ必要があります。

受信する予定のメタデータが返されない場合は、Fabric の管理者に問い合わせて、関連するすべての管理スイッチが有効になっていることを確認してください。

workspaces/getInfo を呼び出して受け取った location ヘッダーの URI を使用し、返されるステータスが "Succeeded" になるまで workspaces/scanStatus/{scan_id} をポーリングします。 このステータスは、スキャン結果の準備ができていることを意味します。 30 から 60 秒のポーリング間隔を使用することをお勧めします。 location ヘッダーでは、次の手順で呼び出す URI も受け取ります。 これは、ステータスが "Succeeded" の場合にのみ使用します。

workspaces/scanStatus/{scan-id} を呼び出して受け取った location ヘッダーの URI を使用し、workspaces/scanResult/{scan_id} を使ってデータを読み取ります。 そのデータには、workspaces/getInfo 呼び出しで渡されたパラメーターに基づいて、ワークスペース、項目情報、その他のメタデータの一覧が含まれます。

手順 2: 増分スキャンを実行する

これで、すべてのワークスペースとその資産のメタデータと系列が取得できたので、以前に行ったスキャンを参照する増分スキャンのみを実行することをお勧めします。

変更されたためにもう一度スキャンが必要になったワークスペースを取得するには、modifiedSince パラメーターを最後のスキャンの開始時刻に設定して workspaces/modified を呼び出します。 modifiedSince パラメーターは、過去 30 日以内の日付に設定する必要があります。

この一覧を最大 100 個のワークスペースのチャンクに分割し、手順 1 で説明したように、workspaces/getInfoworkspaces/scanStatus/{scan_id}workspaces/scanResult/{scan_id} という 3 つの API 呼び出しを使用して、これらの変更されたワークスペースのデータを取得します。

考慮事項と制限事項

  • 更新または再発行されていないセマンティック モデルは、API 応答では返されますが、サブ成果物情報と式は返されません。 たとえば、その応答にはセマンティック モデルト名と系列が含まれますが、セマンティック モデルのテーブルや列名は含まれません。
  • DirectQuery テーブルのみを含むセマンティック モデルでは、セマンティック モデルに対して何らかのアクションが実行された場合 (たとえば、あるユーザーがそれに基づいてレポートを作成している場合や、それに基づくレポートを閲覧している場合など) にのみサブ成果物メタデータが返されます。
  • リアルタイム データセットオブジェクトレベルのセキュリティのセマンティック モデル、AS-Azureオンプレミスの AS へのライブ接続のあるセマンティック モデル、および Excel の完全な再現性のあるデータセットは、サブ成果物メタデータでサポートされていません。 サポートされていないデータセットの場合、応答ではデータセットからサブ成果物メタデータを取得しない理由が返されます。 これは、schemaRetrievalError という名前のフィールドにあります (例: schemaRetrievalError: サポートされていない要求です。RealTime データセットはサポートされていません)。
  • この API では、共有ワークスペースで 1 GB を超えるセマンティック モデルのサブ成果物メタデータは返されません。 Premium ワークスペースの場合、セマンティック モデルのサイズ制限はありません。

ライセンス

メタデータ スキャンには特別なライセンスは必要ありません。 これは、Premium 以外のワークスペースにある項目のものを含め、すべてのテナントのメタデータで機能します。