建立啟用分析存放區的容器

已完成

在 Azure Cosmos DB 帳戶中啟用 Azure Synapse Link 後,您可以建立或更新支援分析存放區的容器。

分析存放區是資料行型存放區,並與資料列型作業存放區在相同的容器中。 自動同步程序會同步作業存放區中的變更至分析存放區。您可以從分析存放區查詢變更,而不在作業存放區中產生處理的額外負荷。

分析存放區結構描述類型

作業存放區的資料同步至分析存放區後,結構描述會動態更新,並反映正在同步的文件結構。 此動態結構描述維護的特定行為,取決於針對 Azure Cosmos DB 帳戶設定的分析存放區結構描述類型。 支援兩種類型的結構描述表示法:

  • 妥善定義:Azure Cosmos DB for NoSQL 預設架構類型。
  • 完整逼真度:Azure Cosmos DB for MongoDB 帳戶的預設 (且僅支援) 架構類型。

分析存放區會從作業存放區接收 JSON 資料,並組織為資料行型結構。 在明確定義結構描述中,JSON 欄位的第一個非 Null 事件會決定該欄位的資料類型。 欄位的後續事件與指派的資料類型不相容,即不會內嵌至分析存放區。

例如,請考量下列兩個 JSON 文件:

{"productID": 123, "productName": "Widget"}
{"productID": "124", "productName": "Wotsit"}

第一個文件判斷 productID 欄位是數值 (整數)。 而接觸第二個文件時,文件的 productID 欄位包含字串值,所以不匯入分析存放區。 文件及文件的其餘欄位會匯入,但不相容的欄位會卸除。 下列資料行代表分析存放區中的資料:

productID productName
123 Widget
Wotsit

在完整逼真度結構描述中,資料類型會連結欄位的每個執行個體,並視需要建立新的資料行,讓分析存放區包含多個欄位事件,且每個欄位包含不同的資料類型,如下表所示:

productID.int32 productName.string productID.string
123 Widget
Wotsit 124

注意

如需詳細資訊,請參閱什麼是 Azure Cosmos DB 分析存放區?

啟用容器中的分析存放區支援

您可以在建立新的容器時或針對現有容器,啟用分析存放區支援。 若要啟用分析存放區支援,您可以使用 Azure 入口網站,或者從命令列或指令碼中,使用 Azure CLI 或Azure PowerShell。

使用 Azure 入口網站

在 Azure 入口網站中建立新容器時,若要啟用分析存放區支援,請選取 [分析存放區] 的 [開啟] 選項,如下所示:

螢幕擷取畫面。顯示在 Azure 入口網站中建立新容器時的分析存放區選項。

您也可以在 Cosmos DB 帳戶頁面 [整合] 區段的 Azure Synapse Link 頁面中啟用現有容器的分析存放區支援,如下所示:

螢幕擷取畫面。顯示 Azure 入口網站中的 Azure Synapse Link 頁面,及選取的現有容器和啟用的容器按鈕上的啟用 Synapse Link。

使用 Azure CLI

若要在 Azure Cosmos DB for NoSQL 容器中使用 Azure CLI 來啟用分析存放區支援,請執行 az cosmosdb sql container create 命令 (建立新的容器) 或搭配 --analytical-storage-ttl 參數使用 az cosmosdb sql container update 命令 (設定現有容器),然後指派分析資料的保留期。 將參數指定為 -1 -analytical-storage-ttl可以永久保留分析資料。 例如,下列命令會建立名為 my-container 且包含分析存放區支援的新容器。

az cosmosdb sql container create --resource-group my-rg --account-name my-cosmos-db --database-name my-db --name my-container --partition-key-path "/productID" --analytical-storage-ttl -1

針對 Azure Cosmos DB for MongoDB 帳戶,您可以使用 az cosmosdb mongodb collection createaz cosmosdb mongodb collection update 命令搭配 --analytical-storage-ttl 參數。 針對 Azure Cosmos DB for Apache Gremlin 帳戶,請使用 az cosmosdb gremlin graph createaz cosmosdb gremlin graph update 命令搭配 --analytical-storage-ttl 參數。

使用 Azure PowerShell

若要使用 Azure PowerShell 在 Azure Cosmos DB for NoSQL 容器中,用分析存放區支援,請執行 New-AzCosmosDBSqlContainer Cmdlet (建立新的容器) 或搭配 Update-AzCosmosDBSqlContainer 參數使用 -AnalyticalStorageTtl Cmdlet (設定現有容器),然後指派分析資料的保留期。 將參數指定為 -1 -AnalyticalStorageTtl可以永久保留分析資料。 例如,下列命令會建立名為 my-container 且包含分析存放區支援的新容器。

New-AzCosmosDBSqlContainer -ResourceGroupName "my-rg" -AccountName "my-cosmos-db" -DatabaseName "my-db" -Name "my-container" -PartitionKeyKind "hash" -PartitionKeyPath "/productID" -AnalyticalStorageTtl -1

針對 Azure Cosmos DB for MongoDB API 帳戶,請使用 New-AzCosmosDBMongoDBCollectionUpdate-AzCosmosDBMongoDBCollection Cmdlet 搭配 -AnalyticalStorageTtl 參數。

啟用分析存放區支援的考量

如果不刪除容器,即無法停用分析存放區支援。 將分析存放區 TTL 值設為 0 或 null,即不再從作業存放區同步新項目,同時從分析存放區刪除已同步的項目,有效停用分析存放區。 將此值設為 0 後,即無法在容器中重新啟用分析存放區支援。