View a markdown version of this page

建立串流資料表交付 - Amazon Kinesis Data Streams

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

建立串流資料表交付

建立交付,持續將記錄從 Amazon Kinesis Data Streams 串流傳送至由 S3 資料表儲存貯體支援的 Apache Iceberg 上的串流資料表。您可以使用 AWS 管理主控台 或 建立交付 AWS CLI。當您建立交付時,Amazon Kinesis Data Streams 會在您指定的資料表儲存貯體中建立目的地 Iceberg 資料表。

注意

建立交付之前,請先完成 中的先決條件串流資料表入門,包括 中所述的 IAM 服務執行角色資料交付的 IAM 許可。串流資料表交付需要結構描述登錄檔中的 AWS Glue 結構描述和無效字母佇列。

使用 AWS 管理主控台

  1. 在 開啟 Kinesis 主控台https://console.aws.amazon.com/kinesis。

  2. 在導覽窗格中,選擇串流資料表,然後選擇建立串流資料表。

  3. 步驟 1:來源組態。在交付詳細資訊下,輸入交付名稱。可接受的字元為大小寫字母、數字、底線、連字號和句點。針對來源,選擇要交付的隨需串流。只會顯示隨需串流。選擇下一步。

  4. 步驟 2:目的地組態。在記錄轉換組態下,選擇記錄轉換格式:

    • JSON – 根據結構描述登錄檔中的結構 AWS Glue 描述進行驗證的 JSON 記錄。在 Glue 結構描述登錄檔下提供結構描述 ARN。

    • Glue 結構描述登錄檔 JSON – 使用 AWS Glue 結構描述登錄檔 JSON 結構描述轉換記錄。

    對於 Glue 結構描述登錄檔,指定結構描述 ARN 或選擇瀏覽以選取。

  5. 在目的地資料表下,指定 Amazon Kinesis Data Streams 建立 Iceberg 資料表的位置:

    • S3 資料表儲存貯體 ARN – S3 資料表儲存貯體的 ARN。選擇瀏覽 S3 以選擇一個。

    • 命名空間 – 資料表的命名空間 (僅限小寫字母、數字和底線)。

    • 資料表名稱 – 要建立的資料表名稱。

    • 資料欄名稱 – 結構描述中用於按小時分割資料表的日期時間欄位名稱。欄位必須是結構描述中具有日期時間格式的字串欄位。

    • 壓縮類型 – 選擇 ZSTD、Snappy 或 None。

    • 資料新鮮度 – 傳送記錄前的緩衝時間上限,以秒為單位 (下限為 300,上限為 900)。

    選擇下一步。

  6. 步驟 3:其他組態。設定下列項目,然後選擇下一步:

    • 加密組態 – 預設情況下,資料會使用預設的 Amazon S3 加密進行加密。若要使用客戶受管金鑰,請選取自訂加密設定 (進階)。

    • 服務存取 – 針對 IAM 角色 ARN,選擇或建立授予目的地存取權的 IAM 角色。選擇建立 IAM 角色以建立一個角色。

    • 無效字母佇列 – 針對 S3 儲存貯體 URI,選擇存放無法交付記錄的 Amazon S3 儲存貯體。選擇性地設定 S3 儲存貯體錯誤輸出字首。

    • 日誌交付 – 選擇性地選取交付至 Amazon CloudWatch Logs 以擷取交付診斷。

    • 標籤 – 選擇性地新增鍵值標籤,以識別和組織您的交付。

  7. 步驟 4:檢閱和建立。檢閱您的組態,然後選擇建立串流資料表。佈建完成後,交付會從 CREATING 轉換為 ACTIVE。

使用 AWS CLI

使用 create-channel命令來建立串流資料表交付。此組態需要來自結構描述登錄檔的 AWS Glue 結構描述和無效字母佇列:

aws kinesis create-channel \ --channel-name "my-iceberg-delivery" \ --service-execution-role-arn "arn:aws:iam::123456789012:role/my-channel-role" \ --stream-configuration-list '[ { "StreamARN": "arn:aws:kinesis:us-east-1:123456789012:stream/my-stream", "RecordConfiguration": { "RecordFormatType": "JSON", "GSRSchemaARN": "arn:aws:glue:us-east-1:123456789012:schema/my-registry/my-schema" } } ]' \ --s3-tables-destination-configuration '{ "DataFreshnessInSeconds": 300, "DeadLetterQueueS3Configuration": { "BucketARN": "arn:aws:s3:::my-dlq-bucket", "ExpectedBucketOwner": "123456789012", "ErrorOutputPrefix": "dlq/" }, "S3TablesConfigurationList": [ { "TableBucketARN": "arn:aws:s3tables:us-east-1:123456789012:bucket/my-table-bucket", "Namespace": "my_namespace", "TableName": "my_table", "CompressionType": "ZSTD", "PartitionSpec": { "PartitionFields": [ { "SourceName": "timestamp", "Transform": "TIME_HOUR" } ] } } ] }'

命令會傳回頻道 ARN (ChannelARN)。將其與 搭配使用describe-channel,以驗證交付是否達到 ACTIVE 狀態。請參閱 描述串流資料表交付。

API 參考 – 請參閱《Amazon Kinesis Data Streams API 參考CreateChannel》中的 。