在 Azure 中選擇串流處理技術
本文會比較 Azure 中即時串流處理的技術選擇。
即時串流處理會取用來自佇列或檔案型儲存體的訊息,處理訊息,並將結果轉送至另一個訊息佇列、檔案存放區或資料庫。 處理可能包括查詢、篩選和彙總訊息。 串流處理引擎必須能夠取用無限的資料流,並以以最短的延遲時間來產生結果。 如需詳細資訊,請參閱即時處理。
在選擇即時處理的技術時,有哪些選項?
在 Azure 中,下列所有資料存放區皆符合支援即時處理的核心需求:
- Azure 串流分析
- 搭配 Spark 串流的 HDInsight
- Azure Databricks 中的 Apache Spark
- Azure Functions
- Azure App Service WebJobs
- Apache Kafka 串流 API
索引鍵選取準則
對於即時處理案例,請透過回答下列問題,開始為您的需要選擇適當的服務:
您偏好使用宣告式還是命令式方法來撰寫串流處理邏輯?
您是否需要時態性處理或視窗化的內建支援?
您的資料是否會以 Avro、JSON 或 CSV 以外的格式送達? 如果是,請考慮使用自訂程式碼支援任何格式的選項。
您是否需要將處理能力擴展至超出 1 GBps? 如果是,請考慮使用叢集大小進行調整的選項。
功能對照表
下表摘要列出功能的主要差異。
一般功能
功能 | Azure 串流分析 | 搭配 Spark 串流的 HDInsight | Azure Databricks 中的 Apache Spark | Azure Functions | Azure App Service WebJobs |
---|---|---|---|---|---|
可程式性 | SQL、JavaScript | C#/F#、Java、Python、Scala | C#/F#、Java、Python、R、Scala | C#、F#、Java、Node.js、Python | C#、Java、Node.js、PHP、Python |
程式設計範例 | 宣告式 | 混合使用宣告式和命令式 | 混合使用宣告式和命令式 | 命令式 | 命令式 |
計價模式 | 串流單位 | 每分鐘節點費用 | Databricks 單位 | 按函數執行和資源耗用量 | 按 App Service 方案小時 |
整合功能
功能 | Azure 串流分析 | 搭配 Spark 串流的 HDInsight | Azure Databricks 中的 Apache Spark | Azure Functions | Azure App Service WebJobs |
---|---|---|---|---|---|
輸入 | Azure 事件中樞、Azure IoT 中樞、Azure Blob 儲存體/Data Lake Storage Gen2 | 事件中樞、IoT 中樞、Kafka、HDFS、儲存體 Blob、Azure Data Lake Store | 事件中樞、IoT 中樞、Kafka、HDFS、儲存體 Blob、Azure Data Lake Store | 支援的繫結 | 服務匯流排、儲存體佇列、儲存體 Blob、事件中樞、WebHook、Azure Cosmos DB、檔案 |
接收 | Azure Data Lake Storage Gen 1、Azure 資料總管、適用於 PostgreSQL 的 Azure 資料庫、Azure SQL Database、Azure Synapse Analytics、Blob 儲存體和 Azure Data Lake Gen 2、Azure 事件中樞、Power BI、Azure 資料表儲存體、Azure 服務匯流排佇列、Azure 服務匯流排主題、Azure Cosmos DB、Azure Functions | HDFS、Kafka、儲存體 Blob、Azure Data Lake Store、Azure Cosmos DB | HDFS、Kafka、儲存體 Blob、Azure Data Lake Store、Azure Cosmos DB | 支援的繫結 | 服務匯流排、儲存體佇列、儲存體 Blob、事件中樞、WebHook、Azure Cosmos DB、檔案 |
處理功能
功能 | Azure 串流分析 | 搭配 Spark 串流的 HDInsight | Azure Databricks 中的 Apache Spark | Azure Functions | Azure App Service WebJobs |
---|---|---|---|---|---|
內建時態性/視窗化支援 | Yes | .是 | 是 | 無 | No |
輸入資料格式 | Avro、JSON 或 CSV、UTF-8 編碼 | 使用自訂程式碼的任何格式 | 使用自訂程式碼的任何格式使用自訂程式碼的任何格式 | 使用自訂程式碼的任何格式 | |
延展性 | 查詢分割區 | 依叢集大小繫結 | 依 Databricks 叢集調整設定繫結 | 最多平行處理 200 個函數應用程式執行個體 | 依 App Service 方案容量繫結 |
支援延遲抵達和順序錯亂事件處理 | Yes | .是 | 是 | 無 | No |
參與者
本文由 Microsoft 維護。 原始投稿人如下。
主要作者:
- Zoiner Tejada | CEO 暨架構設計師
下一步
- App Service 概觀
- 探索 Azure Functions
- 開始使用 Azure 串流分析
- 執行進階串流資料轉換
- 在 HDInsight 中設定叢集
- 在 Azure Databricks 中使用 Apache Spark