CRUD操作的底层实现
了解了Iceberg表的不同组件以及访问Iceberg表中的数据的任何引擎或工具所采取的路径之后,接下来更深入地了解在Iceberg表上执行CRUD操作时,底层会发生什么。
1)CREATE TABLE
首先,在Iceberg Catalog的db1数据库(Iceberg中称为namespace)中创建一个分区表。代码如下:
CREATE TABLE db1.table1 ( order_id BIGINT, customer_id BIGINT, order_amount DECIMAL(10, 2), order_ts TIMESTAMP ) USING iceberg PARTITIONED BY ( HOUR(order_ts) );
上面在数据库db1中创建了一个名为table1的表。该表有4列,并按order_ts时间戳列的小时粒度进行分区。
当执行上面的查询时,在元数据层中创建一个带有快照s0的元数据文件(快照s0没有指向任何清单列表,因为表中还没有数据)。然后,db1. table1的当前元数据指针的catalog条目被更新为指向这个新元数据文件的路径。在这个语句被执行之后,环境看起来如图11-32所示。
2)INSERT
现在,向表table1中添加一些数据,代码如下:
......
抱歉,只有登录会员才可浏览!会员登录