Apache Iceberg对接Flinksql测试

最新更新

https://blog.csdn.net/weixin_49218925/article/details/114833693

Apache Iceberg简介

我们可以简单理解为他是基于计算层(flink , spark)和存储层(orc,parqurt)的一个中间层,
我们在hive建立一个iceberg格式的表。用flink或者spark写入iceberg,然后再通过其他方式来读
取这个表,比如spark,flink,presto等。○ 在文件Format(parquet/avro/orc等)之上实现Table语义。■ 支持定义和变更Schema■ 支持Hidden Partition和Partition变更■ ACID语义■ 历史版本回溯○ 特点■ 借助partition和columns统计信息实现分区裁剪■ 不绑定HDFS,可拓展到S3/OSS等 ■ Serializable Isolation■ 容许多个writer并发写入。乐观锁机制解决冲突。○ iceberg文件目录

1 环境准备:

1.1 所需组件版本

■ Flink:1.11.1
■ Prestosql:320
■ Hive:2.11
■ Jdk :1.8
■ Hadoop:3.0.0
■ iceberg:0.10.0
■ 所用jar:Iceberg-flink-runtime-a1867ee.dirty.jar(下载源码手动编译的iceberg的0.10.0版本,也可从官网下载)

1.2 flink安装与使用的注意事项:

○ 下载安装包:flink-1.11.1-bin-scala_2.11.tgz
○ 下载jar包:flink-connector-hive_2.11-1.11.2.jar,并放入flink的lib下。
○ 将手动编译的iceberg的Iceberg-flink-runtime-a1867ee.dirty.jar拷贝到flink所在节点。
○ Flink对接hive:拷贝hive-common、hive-exec、hive-metastore、hive-shims-common、libfb303、       libthrift、 guava、servlet-api到flink的lib下。
○ standalone启动flink服务:start-cluster.sh
○ 启动flink sql client:sql-client.sh embedded -j ‘../iceberg-flink-runtime.jar’.

2 flink对接iceberg

2.1 flinksql操作iceberg

2.1.1 创建iceberg的catalog

2.1.2 创建iceberg表

2.1.3 flinksql写入数据到iceberg表

2.1.4 修改表属性

2.1.5 flinksql删除表、库和catalog

2.1.6 flinksql暂不支持对column的操作,可通过flink api操作。

2.1.7 对于iceberg的查询,也可通过presto、spark查询。

presto的配置iceberg.properties 如下:connector.name=iceberghive.metastore.uri=thrift://元数据IP:9083

2.2 flink api操作iceberg

public class Flink2Iceberg{public static void main(String[] args) throws Exception{StreamExecutionEnvironment env =StreamExecutionEnvironment.getExecutionEnvironment();env.setParallelism(1);env.enableCheckpointing(10000);StreamTableEnvironment tenv = StreamTableEnvironment.create(env);tenv.executeSql("CREATE CATALOG iceberg WITH (\n" +"  'type'='iceberg',\n" +"  'catalog-type'='hive'," +"  'hive-conf-dir'='/Users/user/work/hive/conf/'" +")");tenv.useCatalog("iceberg");tenv.executeSql("CREATE DATABASE iceberg_db");tenv.useDatabase("iceberg_db");tenv.executeSql("CREATE TABLE sourceTable (\n" +" userid int,\n" +" f_random_str STRING\n" +") WITH (\n" +" 'connector' = 'datagen',\n" +" 'rows-per-second'='100',\n" +" 'fields.userid.kind'='random',\n" +" 'fields.userid.min'='1',\n" +" 'fields.userid.max'='100',\n" +"'fields.f_random_str.length'='10'\n" +")");tenv.executeSql("insert into iceberg.iceberg_db.iceberg_001 select * from iceberg.iceberg_db.sourceTable");}
}

2.3 这是之前测试的iceberg-0.10.0版本,对于flinksql的支持暂不完善,对于0.11.0版本,功能更加完善些,测试后再发出。欢迎加入iceberg数据湖交流群:

iceberg对接flinksql测试相关推荐

  1. 游戏防沉迷系统对接(测试)-JAVA

    游戏防沉迷系统对接(测试)-JAVA 记录一下对接网络游戏防沉迷实名认证系统,参考各个大佬代码,特此整理记录一下:官网地址:https://wlc.nppa.gov.cn/fcm_company/in ...

  2. iceberg+Spark3.0-sql测试

    在Iceberg官方下载页面(http://iceberg.apache.org/releases/) 1.用的是spark3.0最新的,下载对应的jar包,放到spark的jars目录下 2.在sp ...

  3. 银联接口对接demo测试

    前期准备 1.注册账号 https://open.unionpay.com/ajweb/register?locale=zh_CN 2.▼登录账号 -->业务合作–> 业务产品–>在 ...

  4. 海康威视视频对接--rtsp测试地址--vlc测试地址

    rtsp测试地址:rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov

  5. CTP API对接与测试

    CTP柜台在期货领域具有举足轻重的地位,其提供的API以代码风格的规范著称.近期实现了一下对其接口的测试,使用起来还是比较简单清晰的,发现的一个问题就是接口与字段太多了,对使用者的理解增加了不少难度, ...

  6. 湖仓一体技术调研(Apache Hudi、Iceberg和Delta lake对比)

    湖仓一体技术调研(Apache Hudi.Iceberg和Delta lake对比) 作者:程哥哥.刘某迎 .杜某安.刘某.施某宇.严某程 1 引 言 ​ 随着当前的大数据技术逐步革新,企业对单一的数 ...

  7. 复盘:从0到1设计 A/B 测试系统

    本文由作者 Mr.Sen 于社区发布 笔者最近刚完成了 一个A/B测试系统的设计,虽然目前已顺利上线投产,但回想当初实在找了很多资料,包括书籍论文.相关产品使用资料,以及产品和开发者社区.资料虽然不少 ...

  8. Flink + Iceberg + 对象存储,构建数据湖方案

    简介:上海站 Flink Meetup 分享内容,如何基于Flink.对象存储.Iceberg 来构建数据湖生态. 本文整理自 Dell 科技集团高级软件研发经理孙伟在 4 月 17 日 上海站 Fl ...

  9. soapui工具_自动化测试需知的4项测试工具

    一般来说学自动化会建议大家先学selenium,因为最早的时候,自动化就代表selenium,进入测试行业就开始做接口测试,而且现在基本每个公司都需要接口测试.今天就和大家聊一下接口测试的工具. 一. ...

最新文章

  1. 程序员的自我修养--链接、装载与库笔记:Linux共享库的组织
  2. 状态机 python_Python状态机设计
  3. JavaScript数组常用的方法总结
  4. 写出表格的结构html,一个面试题,根据json结构生成html表格
  5. 工作的思考十六:层次的提升 - 团队
  6. python能做什么工作-python能做哪方面的工作
  7. 单工、半双工、双工通信详解
  8. 注入dll到explorer.exe中无反应_【干货】制鞋大底生产中常见问题及解决
  9. HWIDGen 激活出错 解决:输入错误: 没有文件扩展“.vbs”的脚本引擎
  10. 什么是GPS,GPS技术主要有哪些特点?
  11. lilo是什么意思_lilo是什么意思_lilo的用法_lilo造句_趣词词典
  12. Protel DXP使用教程 -建立工程与绘制原理图PCB图
  13. 服务器的ras性能指标,Memory RAS Configuration
  14. 米扑代理:爬虫代理IP哪家好
  15. 1055 习题4-9-3 逆序输出正整数各位上数字
  16. python实现淘宝客服自动回复语_Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例...
  17. WT2003H4-16S 语音芯片按键录音及播放应用解析
  18. 清爽娱乐网源码 v5.69
  19. 苹果手表计算机功能键,Apple Watch上的2个按键是这么玩的
  20. 数据库将表的字段值查询为字段名

热门文章

  1. JAVA中for循环写杨辉三角_java使用for循环输出杨辉三角
  2. 符号标志位.进位标志位_功能标志的成本是多少?
  3. sh脚本和bash脚本_我是如何开始使用bash脚本的
  4. HTML5 装饰Canvas中图形
  5. matelab中simulink报错改正方法
  6. angularjs中按回车事件_在AutoCAD中巧用空格键或回车键,制图效率高
  7. pcie16x能插1x的卡嘛?_5G手机插4G卡,在没有5G信号的地方,跟4G手机的网速一样吗?...
  8. Dao接口返回数组_JavaScript二进制数组(2)TypedArray视图
  9. sql 超时时间已到.在操作完成之前超时时间已过或服务器未响应.,sqlserver Timeout 时间已到。在操作完成之前超时时间已过或服务器未响应...
  10. 行为像指针的类的对象每次作为参数传入函数或者传出函数时都要小心