iceberg:基于云原生数据湖架构的表格式实现项目

Apache Iceberg is a new table format for storing large, slow-moving tabular data.

分支1Tags0
文件最后提交记录最后更新时间
2 年前
4 年前
4 年前
2 年前
2 年前
2 年前
2 年前

iceberg

介绍

概念参照阿里云的简介: 数据湖是一个集中式存储库, 可存储任意规模结构化和非结构化数据, 支持大数据和AI计算.数据湖构建服务(Data Lake Formation, DLF)作为云原生数据湖架构核心组成部分, 帮助用户简单快速地构建云原生数据湖解决方案. 数据湖构建提供湖上元数据统一管理、企业级权限控制, 并无缝对接多种计算引擎, 打破数据孤岛, 洞察业务价值. 数据湖解决方案中关键的一个环节就是数据存储和计算引擎之间的适配. 为了解决这个问题Netflix开发了Iceberg, 目前已经是Apache的顶级项目。 特性

  • 数据存储、计算引擎插件化: 提供一个开放通用的表格式(Table Format)实现方案.因此, 它不和特定的数据存储、计算引擎绑定.
  • 实时流批一体:Iceberg上游组件将数据写入完成后, 下游组件及时可读, 可查询.可以满足实时场景.并且Iceberg同时提供了流/批读接口、流/批写接口. 技术人员可以在同一个流程里, 同时处理流数据和批数据, 大大简化了ETL链路.
  • 数据表演化:Iceberg可以通过SQL的方式进行表级别模式演进. 进行这些操作的时候, 代价极低。不存在读出数据重新写入或者迁移数据这种费时费力的操作。

软件架构

软件架构说明 Iceberg 支持以下库模块:

  • iceberg-common :包含在其他模块中使用的实用程序类
  • iceberg-api:包含公共iceberg API
  • iceberg-core:包含iceberg API的实现和对Avor数据文件的支持
  • iceberg-parquet: 是一个可选的模块,用于处理parquet文件支持的表
  • iceberg-arrow:是一个可选的模块,用于将parquet读入arrow内存
  • iceberg-orc:是一个可选的模块,用于处理由orc文件支持的表
  • iceberg-hive-metastore:是由 Hive Metastore Thrift 客户端支持的 Iceberg 表的实现
  • iceberg-data:是一个可选模块,用于直接从 JVM 应用程序处理表 Iceberg 还具有用于向处理引擎添加 Iceberg 支持的模块:
  • iceberg-spark:包含spark的datasource V2 API
  • iceberg-flink:包含用于与 Apache Flink 集成的类
  • iceberg-pig:是用于 Iceberg 的 Pig 的 LoadFunc API 的实现
  • iceberg-mr:包含用于与 Apache Hive 集成的 InputFormat 和其他类

安装教程

  1. xxxx
  2. xxxx
  3. xxxx

使用说明

  1. xxxx
  2. xxxx
  3. xxxx

参与贡献

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

特技

  1. 使用 Readme_XXX.md 来支持不同的语言,例如 Readme_en.md, Readme_zh.md
  2. Gitee 官方博客 blog.gitee.com
  3. 你可以 https://gitee.com/explore 这个地址来了解 Gitee 上的优秀开源项目
  4. GVP 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
  5. Gitee 官方提供的使用手册 https://gitee.com/help
  6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 https://gitee.com/gitee-stars/

项目介绍

Apache Iceberg is a new table format for storing large, slow-moving tabular data.

定制我的领域