Apache Iceberg on AWS - 通过Firehose流式导入数据到Iceberg表

55 阅读1分钟

整体介绍

Amazon Data Firehose 支持从数据库获取 CDC 流并将其持续复制到 Amazon S3 上的 Apache Iceberg 表的功能。您可以通过指定源和目标来设置 Data Firehose 流。Data Firehose 会捕获并持续复制初始数据快照,然后将对选定数据库表所做的所有后续更改作为数据流进行复制。为了获取 CDC 流,Data Firehose 使用数据库复制日志,从而减少对数据库事务性能的影响。当数据库更新量增加或减少时,Data Firehose 会自动对数据进行分区,并持久保存记录,直到它们传送到目标位置。您无需预置容量或管理和微调集群。除了数据本身之外,Data Firehose 还可以在初始 Data Firehose 流创建过程中,使用与数据库表相同的架构自动创建 Apache Iceberg 表,并根据源架构的变化自动演进目标架构(例如添加新列)。

image.png

查看原始Aurora表数据

使用query editor查询表数据

image.png

image.png

创建CDC流

创建Firehose Stream

image.png

Schema Evolution

变更表结构,添加新的数据列

ALTER TABLE orders 
ADD COLUMN comment VARCHAR;

插入新的数据:

INSERT INTO orders (
   customer_id,
   total_amount,
   order_status,
   payment_method,
   shipping_address,
   comment
) VALUES (
   1001,                                       -- customer_id
   249.99,                                     -- total_amount
   'Processing',                               -- order_status
   'Credit Card',                              -- payment_method
   '123 Main Street, Apt 4B, New York, NY',    -- shipping_address
   'Please deliver after 5pm'                  -- comment
);

查询最新数据:

SELECT * 
FROM "pawmart"."public_orders" 
ORDER BY order_id DESC 
LIMIT 10;

image.png