ストレージの接続文字列

いくつかの Kusto コマンドにより、Kusto が外部ストレージサービスと対話するように指示します。 たとえば、kusto にAzure Storage 外部テーブルを作成するように指示できます。

Kusto は、次の種類のストレージをサポートしています。

  • Azure Blob Storage
  • Azure Data Lake Storage Gen2
  • Azure Data Lake Storage Gen1

ストレージの種類ごとに、ストレージリソースとそのアクセス方法を説明するために使用される接続文字列の形式があります。 Kusto は、これらのストレージリソースと、それらにアクセスするために必要なプロパティ (セキュリティ資格情報など) を記述するために URI 形式を使用します。

Azure Storage blob コンテナーの SAS を生成する

Azure Storage アカウントから SAS リンクを生成するには、次の手順に従います。

  1. Azure portal で Storage Explorer を開きます。

  2. 左側のメニューで [ コンテナー] を選択します。

  3. 目的のコンテナーを右クリックします。

  4. コンテキストメニューから、[ SAS の生成] を選択します。

    コンテナーが選択されている Azure portal のスクリーンショット。特定のコンテナーが右クリックされ、メニューが開きます。このメニューから [SAS の生成] が選択されています。

  5. [Shared Access Signature] ダイアログで、リソースのポリシー、開始日と有効期限日、タイム ゾーン、アクセス レベルを指定します。

    [SAS の生成] ダイアログのスクリーンショット。情報が入力され、選択された SAS トークンと URL が生成されます。

  6. [ SAS トークンと URL の生成] を選択します。

  7. ダイアログの下部に新しいセクションが表示され、blob SAS トークンと blob SAS URL が一覧表示されます。 Blob SAS URL の右側にあるコピーアイコンを選択します。

    Blob SAS URL が生成された Azure portal のスクリーンショット。

Azure StorageSAS リンクは、「 URI テンプレート」で説明されているように生成することもできます。

URI テンプレート

ストレージ型 Scheme URI テンプレート
Azure Blob Storage https:// https://Storageaccountname .blob.core.windows.net/コンテナー[ / blobname] [callercredentials]
Azure Data Lake Storage Gen2 https:// https://Storageaccountname .dfs.core.windows.net/ファイルシステム[ / PathToDirectoryOrFile] [callercredentials]
Azure Data Lake Storage Gen2 abfss:// abfss://ファイルシステム @Storageaccountname .dfs.core.windows.net/[PathToDirectoryOrFile][Callercredentials]
Azure Data Lake Storage Gen1 adl:// adl://Storageaccountname. azuredatalakestore.net/PathToDirectoryOrFile[callercredentials]

ヒント

権限借用を使用する場合、または接続文字列でユーザー委任 SAS トークンを使用する場合は、操作を実行する AAD プリンシパルを読み取り操作用に (最小) Storage blob データリーダーロールに割り当てるか、または書き込み (エクスポートなど) 操作のblob データ共同作成者 Storageする必要があります。

Azure Blob Storage

Azure Blob Storage は最も一般的に使用されるもので、すべてのシナリオでサポートされています。

URI の形式は次のとおりです。

https://Storageaccountname .blob.core.windows.net/コンテナー[ / blobname] [callercredentials]

ここで、 Callercredentials は、ストレージへのアクセスに使用する資格情報を示し、次のいずれかになります。

  • Azure Blob Storage の標準クエリ () を使用した共有アクセス (SAS) キー ?sig=... 。 このメソッドは、Kusto がリソースにアクセスする必要がある時間に制限されている場合に使用します。
  • Storage アカウントキー ( ;ljkAkl...== )。 このメソッドは、Kusto が継続的にリソースにアクセスする必要がある場合に使用します。
  • Base-64 でエンコードされた AAD アクセストークン ( ;token=AadToken )。 トークンがリソース用であることを確認してください https://storage.azure.com/

例 (これは難読化された文字列リテラルを示しているため、アカウントキー、SAS、またはトークンを公開しないことに注意してください)。

h"https://fabrikam.blob.core.windows.net/container/path/to/file.csv;<storage_account_key_text, ends with '=='>" h"https://fabrikam.blob.core.windows.net/container/path/to/file.csv?sv=...&sp=rwd" h"https://fabrikam.blob.core.windows.net/container/path/to/file.csv;token=<aad_token>"

Azure Data Lake Storage Gen2

Azure Data Lake Storage Gen2 は、Azure Blob Storage 上に構築された、ビッグ Data Analytics 専用の一連の機能です。 Azure Blob Storage で階層的な名前空間を有効にすると、これらの機能にアクセスできるようになるため、ストレージを Azure Data Lake Storage Gen2 として扱うことができます。

Azure Data Lake Storage Gen2 URI の形式は次のとおりです。

abfss://ファイルシステム @Storageaccountname .dfs.core.windows.net[ / パス] [callercredentials]

または

https://Storageaccountname .dfs.core.windows.net/ファイルシステム[ / パス] [callercredentials]

条件:

  • Filesystem は、adls ファイルシステムオブジェクトの名前です (Blob コンテナーとほぼ同等)。

  • Storageaccountname はストレージアカウントの名前です

  • Path は、アクセスされるディレクトリまたはファイルへのパスです。 スラッシュ ( / ) 文字は、区切り記号として使用されます。

  • callercredentials は、Azure Data Lake Storage Gen2 にアクセスするために使用される資格情報を示します。 次のオプションを使用できます。

    • ;sharedkey= ACCOUNTKEY を URI に追加し、 AccountKey をストレージアカウントキーにします。
    • ;impersonateを URI に追加します。 Kusto は、要求元のプリンシパル id を使用して、リソースにアクセスするために偽装します。 プリンシパルは、 ここに記載されているように、読み取り/書き込み操作を実行できるように、適切な RBAC ロールの割り当てを持っている必要があります。 (たとえば、読み取り操作の場合、 Storage Blob Data Reader ロールを割り当てます)。
    • ;token= AADTOKEN を URI に追加します。 AadToken は base 64 でエンコードされた AAD アクセストークンです (リソースのトークンであることを確認してください https://storage.azure.com/ )。
    • Azure Data Lake Storage Gen2's 標準クエリ () を使用して、共有アクセス (SAS) キーを追加し ?sig=... ます。 このメソッドは、Kusto がリソースにアクセスする必要がある時間に制限されている場合に使用します。

Azure Data Lake Storage Gen1

Azure Data Lake Storage Gen1 の URI を使用すると、ファイルとディレクトリにアクセスできます。 資格情報を使用して指定する必要があります (Kusto は、Azure Data Lake にアクセスするために独自の AAD プリンシパルを使用しません)。資格情報を提供する次の方法がサポートされています。

  • ;impersonateを URI に追加します。 Kusto は、要求元のプリンシパル id を使用し、それを偽装してリソースにアクセスします。
  • ;token= AADTOKEN を URI に追加します。 AadToken は base 64 でエンコードされた AAD アクセストークンです (リソースのトークンであることを確認してください https://management.azure.com/ )。