ITADN
lakekeeper/lakekeeper
lakekeeper/lakekeeper · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Lakekeeper 目录服务,用于 Apache Iceberg

Website Discord Docker on quay Helm Chart Artifact Hub

License Unittests Spark Integration Pyiceberg Integration Trino Integration Starrocks Integration

请访问 https://docs.lakekeeper.io 获取文档!

这是 Lakekeeper:一个基于 apache/iceberg-rustApache Iceberg REST Catalog 规范的 Apache 许可、安全快速易于使用 的实现。在目录中定义一次访问控制,并在每个计算引擎中强制执行——无需在每个引擎中重复规则。在读取任何数据之前,每个请求都会根据您的策略进行检查并记录。如果您有任何问题、功能请求或只是想聊聊,我们在 Discord 上!

Lakekeeper UI


快速入门

Docker 容器可在 quay.io 上获取。 我们已准备了一个最小的 docker-compose 文件,用于演示如何使用 Lakekeeper 目录与常见的查询引擎。

git clone https://github.com/lakekeeper/lakekeeper.git
cd lakekeeper/examples/minimal
docker compose up

然后打开浏览器,前往 localhost:8888 加载示例 Jupyter notebooks,或前往 localhost:8181 访问 Lakekeeper UI(开源 Console)。

有关部署的更多信息,请参阅 Getting Started Guide

范围与功能

Iceberg Catalog REST 接口已成为开放 Lakehouse 中目录的标准。它原生支持多表提交、服务端冲突解决等功能。它可以说是 Iceberg 的(TIP)。

  • 使用 Rust 编写:单一的一体化二进制文件 - 无需 JVM 或 Python 环境。

  • 存储访问管理:Lakekeeper 使用 Vended-Credentials 和针对 S3 的远程签名来保护对数据的访问。支持所有主要超大规模云服务商(AWS、Azure、GCP)以及使用 S3 的本地部署。

  • Openid 提供商集成:使用您自己的身份提供商进行身份验证,只需设置 LAKEKEEPER__OPENID_PROVIDER_URI 即可开始使用。

  • 原生 Kubernetes 集成:使用我们的 helm chart 轻松部署高可用配置,并原生使用 Kubernetes 服务账户与 Lakekeeper 进行身份验证。Kubernetes 和 OpenID 身份验证可以同时使用。一个 Kubernetes Operator 目前正在开发中。

  • 变更事件:内置支持发出变更事件(CloudEvents),使您能够响应发生在表上的任何变更。

  • 变更审批:外部系统也可以禁止变更。这可用于禁止对会使数据契约、质量 SLO 等失效的表进行变更。只需通过我们的 ContractVerification trait 与您的变更审批流程集成即可。

  • 支持多租户:单个 Lakekeeper 部署可以服务于多个项目 - 所有项目均通过单一入口点访问。每个项目本身支持多个 Warehouse,计算引擎可以连接到这些 Warehouse。

  • 可定制:Lakekeeper 旨在被扩展。我们将数据库实现(Catalog)、SecretsStoreAuthorizer、事件(CloudEventBackend)和 ContractVerification 暴露为接口(Traits)。这允许您通过实现少量方法,接入贵公司的任何访问管理系统,或将变更事件流式传输到您喜欢的任何系统。

  • 测试完善:已通过 sparkpyicebergtrinostarrocks 进行集成测试。

  • 高可用 & 水平可扩展:没有本地状态 - 目录可以轻松地进行水平扩展。

  • 细粒度访问控制 (FGA): Lakekeeper 的默认授权系统利用了 OpenFGA。如果您的公司已经拥有不同的系统,您可以通过在 Authorizer trait 中实现少量方法与其集成。

如果您发现有任何遗漏,我们非常乐意在 GitHub Issue 中听取您的反馈。

状态

存储配置支持

存储状态备注
S3 - AWSdone支持可选角色假设的凭证下发与远程签名,支持会话标签
S3 - 自定义done凭证下发与远程签名;支持 MinIO、Ceph 及其他 S3 兼容存储
S3 - Cloudflare R2done通过 R2 临时访问凭证进行凭证下发
S3 - 阿里云 OSS (Aliyun / 阿里云)done通过阿里云 STS 进行凭证下发 AssumeRole
Azure ADLS Gen2done
Microsoft OneLakedone支持 Microsoft Fabric / OneLake 的 SAS 令牌下发;支持区域端点和私有链接端点
Google Cloud Storagedone支持带或不带分层命名空间的 GCS

有关如何配置存储配置的详细信息,请参阅 文档

支持的目录后端

后端状态备注
Postgresdone>=15

支持的密钥存储

后端状态备注
Postgresdone
kv2 (hcp-vault)doneuserpass 认证

支持的事件存储

后端状态备注
NATSdone
Kafkadone

支持的操作

Lakekeeper 支持的 Iceberg REST 规范之外的操作。

操作状态描述
项目管理done
仓库管理done
软删除done可在仓库级别配置
删除保护done针对仓库、命名空间、表和视图的删除保护
递归删除done递归删除命名空间内的所有项
搜索done仓库级别的表模糊搜索
任务管理done
用户管理done用于权限分配的用户发现和管理。包含模糊搜索功能。注意:Lakekeeper 不作为身份提供商
角色管理done
权限管理done表级别,需要 OpenFGA

Auth(N/Z) 处理器

操作状态描述
OIDC (AuthN)done通过 OIDC 安全访问目录
自定义 (AuthZ)done如果您愿意实现一个 rust Trait,则 AuthZHandler 可以实现以连接到您的系统
OpenFGA (AuthZ)done内部授权管理
Cedardone在 Lakekeeper+ 中可用
OPA 桥接done通过 Open Policy Agent 暴露 Lakekeeper 权限,以便 Trino 等引擎强制执行

Web Console

UI状态备注
Lakekeeper Consoledone开源 Web UI,通过 ui 功能捆绑。管理仓库、命名空间、表、视图、用户、角色和权限

Contributors

Lakekeeper 由贡献者社区构建。

Lakekeeper contributors

请参阅 DEVELOPMENT.md 开始,或加入我们的 Discord

支持

社区支持可通过 DiscordGitHub Issues 获取。

Lakekeeper 由 Vakamo 维护,该公司还提供 Lakekeeper Plus —— 一个增加基于 Cedar 的授权(参见上文 Auth(N/Z) 表格)、 审计和 SLA 的版本。

许可证

采用 Apache License, Version 2.0 许可