

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 了解 Amazon Data Firehose 中的資料交付
<a name="basic-deliver"></a>

當您將資料傳送至 Firehose 串流時，資料會自動傳送至您選擇的目的地。下表說明資料交付至不同目的地的方式。


| 目標 | 詳細資訊 | 
| --- | --- | 
| Amazon S3 | 為了將資料交付至 Amazon S3，Firehose 會根據 Firehose 串流的緩衝組態來串連多個傳入記錄。接著，該服務會將這些記錄作為 Amazon S3 物件，並交付至 Amazon S3。根據預設，Firehose 會串連資料，而沒有任何分隔符號。如果您想要在記錄之間有新的行分隔符號，您可以透過在 [Firehose 主控台組態](https://docs.aws.amazon.com/firehose/latest/dev/create-destination.html#create-destination-s3)或 [API 參數](https://docs.aws.amazon.com/firehose/latest/APIReference/API_Processor.html)中啟用 功能來新增行分隔符號。Firehose 和 Amazon S3 目的地之間的資料交付會使用 TLS (HTTPS) 加密。 | 
| Amazon Redshift | 若要將資料交付至 Amazon Redshift，Firehose 會先以前述格式將傳入資料交付至 S3 儲存貯體。接著 Firehose 會發出 Amazon Redshift **COPY**命令，將資料從 S3 儲存貯體載入 Amazon Redshift 佈建叢集或 Amazon Redshift Serverless 工作群組。確保 Amazon Data Firehose 將多個傳入記錄串連至 Amazon S3 物件後，Amazon S3 物件可以複製到您的 Amazon Redshift 佈建叢集或 Amazon Redshift Serverless 工作群組。如需詳細資訊，請參閱 [Amazon Redshift COPY 命令資料格式參數](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-format.html)。 | 
| OpenSearch Service 和 OpenSearch Serverless | 對於交付至 OpenSearch Service 和 OpenSearch Serverless 的資料，Amazon Data Firehose 會根據 Firehose 串流的緩衝組態來緩衝傳入的記錄。然後，它會產生 OpenSearch Service 或 OpenSearch Serverless 大量請求，在您的 OpenSearch Service 叢集或 OpenSearch Serverless 集合為多個記錄建立索引。將單行 JSON 物件傳送到 Amazon Data Firehose 之前，請確定您的記錄已進行 UTF-8 編碼並扁平化。此外，您還必須將 OpenSearch Service 叢集的 rest.action.multi.allow\_explicit\_index 選項設定為​ true (預設值)，才能夠根據每筆記錄設定的明確索引接受大量請求。如需更多資訊，請參閱《Amazon OpenSearch Service 開發人員指南》中的 [Amazon OpenSearch Service 進階選項](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-advanced-options)。 | 
| Splunk | 對於傳送到 Splunk 的資料，Amazon Data Firehose 會串連您傳送的位元組。如果您的資料需要定界符號 (例如換行字元)，您必須自行插入。請確認將 Splunk 設定為剖析這類定界符號。若要將交付至 S3 錯誤儲存貯體 (S3 備份） 的資料重新驅動回 Splunk，請遵循 [Splunk 文件](https://www.splunk.com/en_us/blog/tips-and-tricks/aws-technical-add-on-simplifying-error-data-re-ingestion.html)中所述的步驟。 | 
| HTTP 端點 | 若要將資料交付至受支援的第三方服務提供者所擁有的 HTTP 端點，您可以使用整合的 Amazon Lambda 服務來建立函數，將傳入記錄轉換為符合服務提供者整合預期的格式 （格式）。請聯絡您為目的地選擇 HTTP 端點的第三方服務供應商，以進一步了解其接受的記錄格式。 | 
| Snowflake | 為了將資料交付至 Snowflake，Amazon Data Firehose 會在內部緩衝資料一秒鐘，並使用 Snowflake 串流 API 操作將資料插入 Snowflake。根據預設，您插入的記錄會每秒排清並遞交至 Snowflake 資料表。在您進行插入呼叫後，Firehose 會發出 CloudWatch 指標，測量資料遞交至 Snowflake 所需的時間。Firehose 目前僅支援單一 JSON 項目做為記錄承載，且不支援 JSON 陣列。請確定您的輸入承載是有效的 JSON 物件，而且格式良好，沒有任何額外的雙引號、引號或逸出字元。 | 

每個 Firehose 目的地都有自己的資料交付頻率。如需詳細資訊，請參閱[設定緩衝提示](create-configure-backup.md#buffering-hints)。

**複製記錄**

Amazon Data Firehose 使用at-least-once的語意進行資料交付。在某些情況下，例如資料交付逾時時，如果原始資料交付請求最終通過，Amazon Data Firehose 的交付重試可能會引入重複項目。這適用於 Amazon Data Firehose 支援的所有目的地類型，但 Amazon S3 目的地、Apache Iceberg Tables 和 Snowflake 目的地除外。

**Topics**
+ [了解跨 AWS 帳戶和區域的交付](across.md)
+ [了解 HTTP 端點交付請求和回應規格](httpdeliveryrequestresponse.md)
+ [處理資料交付失敗](retry.md)
+ [設定 Amazon S3 物件名稱格式](s3-object-name.md)
+ [設定 OpenSearch Service 的索引輪換](es-index-rotation.md)
+ [暫停和繼續資料交付](pause-restart-stream.md)