儲存體連接字串
適用於: ✅Microsoft網狀架構✅Azure 數據總管
Kusto 服務可以與外部記憶體服務互動。 例如,您可以建立 Azure 儲存體 外部數據表,以查詢儲存在外部記憶體上的數據。
支援下列型態的外部記憶體:
- Azure Blob 儲存體
- Azure Data Lake Storage Gen2
- Azure Data Lake Storage Gen1
- Amazon S3
每種記憶體類型都有對應的 連接字串 格式,用來描述記憶體資源以及如何存取它們。 URI 格式可用來描述這些記憶體資源和存取它們所需的屬性,例如安全性認證。
注意
HTTP Web 服務支援僅限於從任意 HTTP Web 服務擷取資源。 不支援其他作業,例如寫入資源。
記憶體 連接字串 範本
每個記憶體類型都有不同的 連接字串 格式。 如需每個記憶體類型的 連接字串 範本,請參閱下表。
儲存區類型 | 配置 | URI 範本 |
---|---|---|
Azure Blob 儲存體 | https:// |
https:// StorageAccountName Container[/ BlobName.blob.core.windows.net/ ][CallerCredentials] |
Azure Data Lake Storage Gen2 | https:// |
https:// StorageAccountName Filesystem[/ PathToDirectoryOrFile][CallerCredentials].dfs.core.windows.net/ |
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] |
Amazon S3 | https:// |
https:// BucketName.s3. RegionName.amazonaws.com/ ObjectKey[CallerCredentials] |
HTTP Web 服務 | https:// |
https:// / 主機名路徑AndQuery |
注意
若要防止秘密顯示在追蹤中,請使用 模糊字串常值。
記憶體驗證方法
若要與非公用外部記憶體互動,您必須指定驗證方法做為外部記憶體 連接字串的一部分。 連接字串 會定義要存取的資源及其驗證資訊。
支援下列驗證方法:
- 共用存取權 (SAS) 金鑰
- Microsoft Entra 存取令牌
- 儲存體帳戶存取金鑰
- Amazon Web Services 程式設計存取金鑰
- Amazon Web Services S3 預先簽署的 URL
依記憶體類型支持的驗證
下表摘要說明不同外部記憶體類型的可用驗證方法。
驗證方法 | 可在 Blob 記憶體中使用? | 可在 Azure Data Lake Storage Gen 2 中使用? | 可在 Azure Data Lake Storage Gen 1 中使用? | 可在 Amazon S3 中使用? | 何時應該使用此方法? |
---|---|---|---|---|---|
模仿 | ✔️ | ✔️ | ✔️ | ❌ | 當您需要對外部記憶體進行複雜的訪問控制時,請用於參與的流程。 例如,在連續匯出流程中。 您也可以限制使用者層級的記憶體存取。 |
受控識別 | ✔️ | ✔️ | ✔️ | ❌ | 在自動流程中使用,其中無法衍生任何Microsoft Entra 主體來執行查詢和命令。 受控識別是唯一的驗證解決方案。 |
共用存取權 (SAS) 金鑰 | ✔️ | ✔️ | ❌ | ❌ | SAS 令牌有到期時間。 存取記憶體的時間有限時使用。 |
Microsoft Entra 存取令牌 | ✔️ | ✔️ | ✔️ | ❌ | Microsoft Entra 令牌有到期時間。 存取記憶體的時間有限時使用。 |
儲存體帳戶存取金鑰 | ✔️ | ✔️ | ❌ | ❌ | 當您需要持續存取資源時。 |
Amazon Web Services 程式設計存取金鑰 | ❌ | ❌ | ❌ | ✔️ | 當您需要持續存取 Amazon S3 資源時。 |
Amazon Web Services S3 預先簽署的 URL | ❌ | ❌ | ❌ | ✔️ | 當您需要使用暫存預先簽署 URL 存取 Amazon S3 資源時。 |
模擬
Kusto 會模擬要求者的主要身分識別來存取資源。 若要使用模擬,請將 附加;impersonate
至 連接字串。
範例 |
---|
"https://fabrikam.blob.core.windows.net/container/path/to/file.csv;impersonate" |
主體必須具有執行作業的必要許可權。 例如,Azure Blob 儲存體 中,若要從 Blob 讀取主體需要記憶體 Blob 數據讀取器角色,以及導出至主體需要記憶體 Blob 數據參與者角色的 Blob。 若要深入瞭解,請參閱 Azure Blob 儲存體/Data Lake Storage Gen2 訪問控制或 Data Lake Storage Gen1 訪問控制。
受控識別
Azure 數據總管會代表受控識別提出要求,並使用其身分識別來存取資源。 針對系統指派的受控識別,請將 附加;managed_identity=system
至 連接字串。 針對使用者指派的受控識別,請將 附加;managed_identity={object_id}
至 連接字串。
受控識別類型 | 範例 |
---|---|
系統指派 | "https://fabrikam.blob.core.windows.net/container/path/to/file.csv;managed_identity=system" |
使用者指派 | "https://fabrikam.blob.core.windows.net/container/path/to/file.csv;managed_identity=12345678-1234-1234-1234-1234567890ab" |
受控識別必須具有執行作業的必要許可權。 例如,Azure Blob 儲存體,若要從 Blob 讀取受控識別需要記憶體 Blob 數據讀取器角色,以及導出至受控識別需要記憶體 Blob 數據參與者角色的 Blob。 若要深入瞭解,請參閱 Azure Blob 儲存體/Data Lake Storage Gen2 訪問控制或 Data Lake Storage Gen1 訪問控制。
注意
受控識別僅在特定的 Azure 數據總管流程中受到支援,而且需要設定受控識別原則。 如需詳細資訊,請參閱 受控識別概觀。
共用存取 (SAS) 權杖
在 Azure 入口網站 中,產生具有所需許可權的SAS令牌。
例如,若要從外部記憶體讀取,請指定讀取和列出許可權,以及匯出至外部記憶體,請指定寫入許可權。 若要深入瞭解,請參閱 使用共用存取簽章委派存取權。
使用SAS URL作為 連接字串。
範例 |
---|
"https://fabrikam.blob.core.windows.net/container/path/to/file.csv?sv=...&sp=rwd" |
Microsoft Entra 存取權杖
若要新增base-64編碼Microsoft Entra存取令牌,請將 附加;token={AadToken}
至 連接字串。 權杖必須為資源 https://storage.azure.com/
。
如需如何產生Microsoft Entra 存取令牌的詳細資訊,請參閱 取得授權的存取令牌。
範例 |
---|
"https://fabrikam.blob.core.windows.net/container/path/to/file.csv;token=1234567890abcdef1234567890abcdef1234567890abc..." |
儲存體帳戶存取金鑰
若要新增記憶體帳戶存取金鑰,請將金鑰附加至 連接字串。 在 Azure Blob 儲存體 中,附加;{key}
至 連接字串。 針對 Azure Data Lake Storage Gen 2,請將 附加;sharedkey={key}
至 連接字串。
儲存體帳戶 | 範例 |
---|---|
Azure Blob 儲存體 | "https://fabrikam.blob.core.windows.net/container/path/to/file.csv;ljkAkl...==" |
Azure Data Lake Storage Gen2 | "abfss://fs@fabrikam.dfs.core.windows.net/path/to/file.csv;sharedkey=sv=...&sp=rwd" |
Amazon Web Services 程式設計存取金鑰
若要新增 Amazon Web Services 存取金鑰,請將 附加;AwsCredentials={ACCESS_KEY_ID},{SECRET_ACCESS_KEY}
至 連接字串。
範例 |
---|
"https://yourbucketname.s3.us-east-1.amazonaws.com/path/to/file.csv;AwsCredentials=AWS1234567890EXAMPLE,1234567890abc/1234567/12345678EXAMPLEKEY" |
Amazon Web Services S3 預先簽署的 URL
使用 S3 預先簽署的 URL 作為 連接字串。
範例 |
---|
"https://yourbucketname.s3.us-east-1.amazonaws.com/file.csv?12345678PRESIGNEDTOKEN" |
相關內容
如需如何使用記憶體 連接字串 的範例,請參閱:
- externaldata 運算符
- 建立和改變外部數據表 Azure 儲存體。