Apache Iceberg 是一种用于大型分析数据集的开放表格,Iceberge 向 Trino 和 Spark 添加了使用高性能格式的表,就像 Sql 表一样。
Iceberg 为了避免出现不变要的一些意外,表结构和组织并不会实际删除,用户也不需要特意了解分区便可进行快速查询。
- Iceberg 的表支持快速添加、删除、更新或重命名 *** 作。支持overwrite,但不支持行级的更新将分区列进行隐藏,避免用户错误的使用分区和进行极慢的查询。分区列也会随着表数据量或查询模式的变化而自动更新。表可以根据时间进行表快照,方便用户根据时间进行检查更改。提供版本回滚,方便用户纠错数据。
Iceberg 是为大表而建的,Iceberg 用于生产中,其中单表数据量可包含 10pb 左右数据, 甚至可以在没有分布式 SQL 引擎的情况下读取这些巨量数据。
- 查询计划非常迅速,不需要分布式 SQL 引擎来读取数据。高级过滤:可以使用分区和列来过滤查询这些数据。可适用于任何云存储。表的任何 *** 作都是原子性的,用户不会看到部分或未提交的内容。使用多个并发器进行写入,并使用乐观锁重试的机制来解决兼容性问题。
构建 Iceberge 需要 Grade 5.41 和 java8 或 java11 的环境
2.1、构建Iceberg1、上传并解压iceberg-apache-iceberg-0.11.1.zip。并修改配置文件version.props。
org.apache.flink:* = 1.11.0 org.apache.hadoop:* = 3.1.3 org.apache.hive:hive-metastore = 2.3.7 org.apache.hive:hive-serde = 2.3.7 org.apache.spark:spark-hive_2.12 = 3.0.1 org.apache.hive:hive-exec = 2.3.7 org.apache.hive:hive-service = 2.3.7
2、修改国内镜像
buildscript { repositories { jcenter() gradlePluginPortal() maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/' } maven{ url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'} maven { url "http://palantir.bintray.com/releases" } maven { url "https://plugins.gradle.org/m2/" } } .... } allprojects { group = "org.apache.iceberg" version = getProjectVersion() repositories { maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'} maven{ url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'} maven { url "http://palantir.bintray.com/releases" } mavenCentral() mavenLocal() } }
3、构建项目:./gradlew build -x test
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)