關於適用於 Azure Cosmos DB 的 Azure Synapse Link 常見問題

適用於:NoSQL MongoDB Gremlin

適用於 Azure Cosmos DB 的 Azure Synapse Link 會在 Azure Cosmos DB 與 Azure Synapse Analytics 之間建立緊密的整合。 可讓客戶對其操作資料執行近即時分析,並將分析與交易的工作負載完全隔離,且不需要 ETL (擷取、轉換和下載) 管線。 本文會回答有關 Azure Cosmos DB 的 Synapse Link 常見問題。

一般常見問題集

Azure Cosmos DB API for NoSQL 和適用於 MongoDB 的 Azure Cosmos DB API 均支援 Azure Synapse Link。 Azure Cosmos DB API for Gremlin 的支援目前處於預覽狀態。

是,在多區域 Azure Cosmos DB 帳戶中,儲存在分析存放區中的資料也會全域散發。 分析存放區會存在於您也有交易存放區的所有區域中。 不論是單一寫入區域或多個寫入區域,從 Azure Synapse Analytics 執行的分析查詢都可以從最接近的本地區域提供服務。

針對多區域帳戶啟用 Azure Synapse Link 時,會在客戶選擇的所有區域中建立分析存放區,以供交易式異地複寫使用。 基礎資料已針對交易存放區中的輸送量和交易一致性進行最佳化。

所有 Azure Cosmos DB 區域都支援分析存放區嗎?

是。

目前,在帳戶層級啟用 Synapse Link 功能之後,您就無法將其停用。 如果已在帳戶層級啟用 Synapse Link 功能,且分析存放區沒有啟用容器,就不會產生計費影響。

如果您需要關閉功能,請刪除 Azure Cosmos DB 帳戶並重新建立新的,然後視需要移轉資料。

分析存放區對 Azure Cosmos DB 的交易式 SLA 是否有任何影響?

否,不會有任何影響。

是,API for MongoDB 和 API for NoSQL 資料庫帳戶均可。 對 MongoDB 帳戶使用 CLI 或 PowerShell。

您需要參與者角色,才能在帳戶層級啟用 Synapse Link。

Azure Cosmos DB 分析存放區

我可以在現有的容器上啟用分析存放區嗎?

是。 目前,您可以使用 Azure 入口網站、Azure CLI、PowerShell 或 Azure Cosmos DB SDK 為現有的 API for NoSQL 容器啟用分析存放區。 而且,您可以對現有的 API for MongoDB 集合使用 Azure CLI 或 PowerShell。

我可以使用 Azure 資料總管查看分析存放區檔案嗎?

否。 分析存放區會保存在位於 Cosmos DB 內部訂用帳戶的儲存體帳戶中。 客戶無權存取此儲存器帳戶,而必須使用 Azure Synapse 執行階段來讀取資料。

我可以在 Azure Cosmos DB 容器上停用分析存放區嗎?

是,您可以使用 PowerShell 或 CLI,在 API for NoSQL 容器和 API for MongoDB 集合中停用分析存放區。 此動作目前無法復原。

具有自動調整佈建輸送量的 Azure Cosmos DB 容器支援分析存放區嗎?

是,您可以在具有自動調整佈建輸送量功能的容器上啟用分析存放區。

對 Azure Cosmos DB 交易存放區佈建的 RU 是否會有任何影響?

Azure Cosmos DB 保證會將交易和分析的工作負載效能隔離。 在容器上啟用分析存放區,不會影響 Azure Cosmos DB RU/秒。 分析存放區的交易 (讀取和寫入) 和儲存成本將分開計費。 如需詳細資訊,請參閱 Azure Cosmos DB 分析存放區的定價

我可以限制對 Azure Cosmos DB 分析存放區的網路存取嗎?

是的,您可以設定受控私人端點,並限制分析存放區對 Azure Synapse 受控虛擬網路的網路存取。 受控私人端點會建立對您的分析存放區的私人連結。

您可以將交易式存放區和分析存放區私人端點新增至 Azure Synapse Analytics 工作區中的相同 Azure Cosmos DB 帳戶。 如果您只想要執行分析查詢,您可能只想要在 Synapse Analytics 工作區中啟用分析私人端點。

我可以將客戶自控金鑰搭配 Azure Cosmos DB 分析存放區使用嗎?

您可以自動且透明的方式使用相同客戶自控金鑰,在交易式和分析存放區之間順暢地加密資料。 若要使用客戶自控金鑰搭配分析存放區,您必須在 Azure Key Vault 存取原則中使用 Azure Cosmos DB 帳戶的系統指派受控識別。 然後,您應該能夠在您的帳戶上啟用分析存放區。 按一下這裡查看詳細資訊。

交易存放區上的刪除和更新作業會反映在分析存放區中嗎?

是,交易存放區中的資料刪除和更新會反映在分析存放區中。 您可以在容器上設定存留時間 (TTL) 以包含歷程記錄資料,讓分析存放區保留符合分析 TTL 準則的所有項目版本。 如需詳細資訊,請參閱分析 TTL 概觀

我可以從 Azure Synapse Analytics 以外的分析引擎連線到分析存放區嗎?

您只能使用 Azure Synapse Analytics 提供的各種執行階段來存取分析存放區,及對其執行查詢。 您可以使用下列各項對分析存放區執行查詢和分析:

  • 完全支援 Scala、Python、SparkSQL、C# 的 Synapse Spark。 Synapse Spark 是資料工程和科學案例的核心
  • 無伺服器 SQL 集區搭配 T-SQL 語言,並支援熟悉的 BI 工具 (例如 Power BI Premium 等)

我可以從已佈建的 Synapse SQL 連線到分析存放區嗎?

目前無法從佈建的 Synapse SQL 存取分析存放區。

我可以將 Synapse 的查詢彙總結果寫回分析存放區嗎?

否,分析存放區是唯讀的。

從交易存放區到分析存放區的自動同步複寫是非同步或同步,其延遲為何?

自動同步的延遲通常在 2 分鐘以內。 在具有大量容器的共用輸送量資料庫中,個別容器的自動同步延遲可能會較高,最多需要 5 分鐘的時間。

有沒有任何情況,交易存放區中的項目不會自動傳播到分析存放區嗎?

如果容器中的特定項目違反了妥善定義的分析結構描述,就不會納入分析存放區中。

我可以將分析存放區中的資料分割的和交易存放區不同嗎?

依預設不會分割分析存放區。 如果您的分析查詢經常使用篩選,請使用自訂資料分割來提升效能。 按一下這裡查看詳細資訊。

我可以在分析存放區中,自訂或覆寫交易資料轉換成單欄式格式的方式嗎?

目前您無法在資料項目從交易存放區自動傳播到分析存放區時,轉換這些資料項目。 如果您有被此限制所封鎖的案例,請傳送電子郵件至 Azure Cosmos DB 小組

我可以使用 Azure Cosmos DB SDK 來存取分析存放區嗎?

不行,您無法使用 Azure Cosmos DB SDK 來存取分析存放區。 您必須使用 Azure Synapse Analytics、Spark 或 SQL 無伺服器集區。

我可以使用 Azure Cosmos DB REST API 來存取分析存放區嗎?

不行,您無法使用 Azure Cosmos DB REST API 來存取分析存放區。 您必須使用 Azure Synapse Analytics、Spark 或 SQL 無伺服器集區。

Terraform 支援分析存放區嗎?

目前 Terraform 不支援分析存放區容器。 如需詳細資訊,請參閱 Terraform GitHub 問題

至少要有操作員角色才能啟用 Synapse Link,以便在容器或集合層級啟用分析存放區。

分析存留時間 (TTL)

是否在容器和項目層級皆支援分析資料的 TTL?

現階段,只能在容器層級設定分析資料的 TTL,不支援在項目層級設定分析 TTL。

在 Azure Cosmos DB 容器上設定容器層級的分析 TTL 之後,可以在之後變更為其他的值嗎?

是,分析 TTL 可以更新為任何有效的值。 如需分析 TTL 的詳細資訊,請參閱分析 TTL 一文。

在交易存放區中的項目過了 TTL 之後,我可以在分析存放區中更新或刪除該項目嗎?

所有的交易更新和刪除都會複製到分析存放區,但如果已從交易存放區中清除項目,就無法在分析存放區中進行更新。 若要深入瞭解,請參閱分析 TTL 一文。

計費

Azure Synapse Link 的計費模型會包含使用 Azure Cosmos DB 分析存放區和 Synapse 執行階段所產生的成本。 若要深入瞭解,請參閱 Azure Cosmos DB 分析存放區定價Azure Synapse Analytics 定價

無。 只有您建立了已啟用分析存放區的容器並開始載入資料時,才會產生費用。

安全性

有哪些方式能向分析存放區驗證?

分析存放區的驗證與交易存放區相同。 針對指定的資料庫,您可以使用主要或唯讀金鑰進行驗證。 您可以使用 Azure Synapse Studio 中的連結服務,以避免將 Azure Cosmos DB 金鑰貼到 Spark 筆記本中。 具有工作區存取權的每個人都可以存取此連結服務。 使用 Synapse 無伺服器 SQL 集區時,您可以預先建立 SQL 認證,並在 OPENROWSET 函式中參考這些資訊,以查詢 Azure Cosmos DB 分析存放區。 若要深入了解,請參閱使用 Azure Synapse Link 中的無伺服器 SQL 集區查詢一文。

可以,Azure Synapse Link 支援使用您的 Azure Cosmos DB 帳戶的受控識別來設定客戶自控金鑰。 您可以自動且透明的方式使用相同客戶自控金鑰,在交易式和分析存放區之間順暢地加密資料。 如需深入了解,請參閱使用 Azure Cosmos DB 帳戶的受控識別來設定客戶自控金鑰一文。

是的,您可以獨立控制對交易式和分析存放區中資料的網路存取。 針對 Azure Synapse 工作區中受控虛擬網路內的每個存放區,使用個別的受控私人端點進行網路隔離。 若要深入了解,請參閱如何設定分析存放區的私人端點一文。

通常,403 導因於網路/防火牆設定防止使用者存取特定資料,甚至從入口網站也無法存取。 此問題最常見的原因,是使用私人端點啟用網路隔離程序的步驟 1 尚未透過 Azure CLI 或 PowerShell 執行。 這裡提供更多詳細資料。

Synapse 執行階段

目前支援使用哪些 Synapse 執行階段來存取 Azure Cosmos DB 分析存放區?

Azure Synapse 執行階段 目前的支援
Azure Synapse Spark 集區 讀取、寫入 (透過交易存放區)、資料表、暫存檢視
Azure Synapse 無伺服器 SQL 集區 讀取、檢視
佈建的 Azure Synapse SQL 無法使用

Spark 資料表與 SQL 無伺服器資料表同步處理的方式,是否與其和 Azure Data Lake 同步處理的方式相同?

此功能目前無法使用。

我可以從分析存放區進行 Spark 結構化串流嗎?

目前,是使用交易存放區的變更摘要功能來執行 Azure Cosmos DB 的 Spark 結構化串流支援,而分析存放區尚未支援此功能。

支援串流嗎?

我們不支援從分析存放區串流資料。

Azure Synapse Studio

在 Azure Synapse Studio 中,我如何辨識是否已連線到已啟用分析存放區的 Azure Cosmos DB 容器?

已啟用分析存放區的 Azure Cosmos DB 容器會有下列圖示:

Azure Cosmos DB container enabled with analytical store- icon

交易存放區容器將會以下列圖示表示:

Azure Cosmos DB container enabled with transactional store- icon

如何從 Azure Synapse Studio 傳遞 Azure Cosmos DB 認證?

目前 Azure Cosmos DB 認證是在建立連結服務時由具有 Azure Cosmos DB 資料庫存取權的使用者傳遞。 其他能存取工作區的使用者也會具有該工作區的存取權。

我可以使用 SQL Server Management Studio 來查詢使用 Synapse 無伺服器 SQL 集區的分析存放區嗎?

是。