IceBerg 数据写入

数据写入 #

[] 什么时候写入metadata

Iceberg 0.12

Flink方式写入 #

创建FlinkSink #

FlinkSink.forRow(dataStream, SimpleDataUtil.FLINK_SCHEMA)
        .tableLoader(tableLoader)
        .tableSchema(SimpleDataUtil.FLINK_SCHEMA)
        .writeParallelism(parallelism)
        .equalityFieldColumns(equalityFieldColumns)
        .build();

FlinkSink.Builder#build 调用链 #

类与方法 #

关系 #

Table 相关 #

TableOperations #

commit 提交 #

DeleteReadTests

table.newAppend()
        .appendFile(dataFile)
        .commit();
  1. 写入新的元数据
  2. 保存Hive表结构

TaskWriterFactory、TaskWriter #

RowDataDeltaWriter #

快照表 #

Flink StreamOperator 相关 #

IcebergStreamWriter #

对象初始化 #

类关系 #

算子初始化 #

处理数据 #

写入 #

删除 #

prepareSnapshotPreBarrier #

将WriteResult发向下游

IcebergFilesCommitter #

checkpoint初始化 #

snapshotState #

Checkpoint完成时 #