iceberg表flink访问有两种方式
1. connector 直接访问
CREATE TABLE ods_iceberg_bi_o2o_stream_v1_0904 (自己定义,当前catalog database 下面不重复即可)(
id BIGINT,
data STRING
) WITH (
'connector'='iceberg', -- 固定值 iceberg
'catalog-name'='hive', -- 当前的catalog 名称 ,用户自定义即可
'catalog-type'='hive', -- 指定hive类型
'catalog-database'='dl_test', -- 真实的库名
'catalog-table'='ods_iceberg_bi_o2o_stream_v1_0904', -- 真实的表名
'uri'='thrift://xxxxxx:9083', -- 必须要指定 uri
'warehouse'='hdfs://nnn/user/hive/warehouse/' -- 不指定也行
);
直接select * from 表名即可
2. ddl 方式
CREATE CATALOG iceberg WITH (
'type' = 'iceberg',
'catalog-type'='hive',
'uri'='thrift://xxxxxx:9083',
'clients'='5',
'property-version'='1',
'hive-conf-dir' = '/opt/flink-1.14.0/conf'
);
直接select * from iceberg.database.db 即可
感觉都行,用户根据自己喜爱使用,通用型的话,好像都使用 1的方式比较直接一些,是映射的外表,删除也不影响原表
任务隔离性强,缺点就是每个表都得把 上在的属性都指定一下,方式2 定义一次即可