当前位置: 首页 > ai >正文

iceberg FlinkSQL 特性

版本

        iceberg 1.2.0 

        flink 1.16.0

建表与限制

        创建一个带有主键的FlinkSQL表

CREATE TABLE `hive_catalog`.`default`.`sample_with_key` (id BIGINT COMMENT 'unique id',data STRING,primary key (id) not enforced
);

        截止 iceberg 1.2.0 FlinkSQL 不支持隐式分区,不支持计算列,watermark

        FlinkSQL 在hive中创建的表默认是外部表

修改表和删除表

ALTER TABLE `hive_catalog`.`default`.`sample` SET ('write.format.default'='avro');ALTER TABLE `hive_catalog`.`default`.`sample` RENAME TO `hive_catalog`.`default`.`new_sample`;

drop table new_sample;

 因为是默认创建的外部表,删除后在hdfs还存在data和metadata目录,但是数据被清空了

插入表和upsert问题

iceberg v2 版本的表在创建了主键的前提下支持upsert操作

CREATE TABLE `hive_catalog`.`default`.`sample_test_upsert` (`id` INT COMMENT 'unique id',`data` STRING NOT NULL,PRIMARY KEY(`id`) NOT ENFORCED
) with ('format-version'='2', 'write.upsert.enabled'='true');

在upsert模型下,分区字段必须是主键

upsert模式下存在的问题是,性能不好

新增两条数据

INSERT INTO `hive_catalog`.`default`.`sample_test_upsert` VALUES (1, 'a');
INSERT INTO `hive_catalog`.`default`.`sample_test_upsert` VALUES (2, 'b');

修改主键为2的数据

INSERT INTO `hive_catalog`.`default`.`sample_test_upsert` VALUES (2, 'c');

结果是主键为2的数据的data字段的字从b更新为了c

http://www.xdnf.cn/news/17637.html

相关文章:

  • QT(概述、基础函数、界面类、信号和槽)
  • 【SpringBoot】08 容器功能 - SpringBoot底层注解汇总大全
  • 《汇编语言:基于X86处理器》第13章 高级语言接口(2)
  • __base__属性
  • [ Mybatis ] 框架搭建与数据访问
  • 【Android】【bug】Json解析错误Expected BEGIN_OBJECT but was STRING...
  • Qt——信号和槽
  • 移动端网页调试实战,键盘弹出与视口错位问题的定位与优化
  • iOS 签名证书实践日记,我的一次从申请到上架的亲历
  • vue项目封装axios请求,支持判断当前环境及判断token是否过期等等(详细教程,可复制粘贴代码)
  • UE官方文档学习 C++ TAarry 查询(三)Contain,Find函数的使用
  • Java面试题储备11: mysql优化全面讲一下,及你遇到的对应业务场景
  • 第六十三章:AI模型的“跨界之旅”:不同硬件架构下的兼容性方案
  • RK3568 Linux驱动学习——Linux LED驱动开发
  • 数据分析与可视化
  • Java的异常机制
  • Supabase快速入门与实战指南
  • Effective C++ 条款37:绝不重新定义继承而来的缺省参数值
  • 存储过程作为系统逻辑核心的架构思考 —— 以 SaaS 系统为例
  • 计算机视觉(8)-纯视觉方案实现端到端轨迹规划(模型训练+代码)
  • 数据库规范化:消除冗余与异常的核心法则
  • 经济基础知识第一节:物质资料生产和基本经济规律(一)
  • SQL 与 NoSQL 的核心区别
  • 为什么灰度图用G(绿色)通道?
  • Docker 101:面向初学者的综合教程
  • 【报错处理】mount: /boot/efi: unknown filesystem type ‘LVM2_member‘.
  • 记录一次react渲染优化
  • 实现文字在块元素中水平/垂直居中详解
  • 教程 | 用Parasoft SOAtest实现高效CI回归测试
  • AWS EKS 常用命令大全:从基础管理到高级运维