官网链接:https://kyuubi.apache.org/
Apache Kyuubi™ 是一个分布式多租户网关,用于在数据仓库和 Lakehouse 上提供无服务器 SQL。
Kyuubi 在各种现代计算框架(例如 Apache Spark、 Flink、 Doris、 Hive和Trino等)之上构建分布式 SQL 查询引擎,以查询来自异构数据源的分布在大量机器上的海量数据集。
下面泳道的 Kyuubi 服务器通道将我们的潜在用户分为最终用户和管理员。一方面,它向最终用户隐藏了计算和存储的技术细节。因此,他们可以使用熟悉的工具专注于自己的业务和数据。另一方面,它向管理员隐藏了业务逻辑的复杂性。因此,他们可以在零维护停机时间的情况下升级服务器端的组件,通过清楚地了解最终用户正在做什么来优化工作负载,确保集群和数据安全的身份验证、授权和审计等等
总的来说,Kyuubi 的完整生态系统分为上图所示的层次结构,每一层之间都是松散耦合的。将上面的一些组件组合起来构建一个现代数据堆栈就像小孩子的游戏一样。例如,您可以使用 Kyuubi、Spark 和Iceberg来构建和管理 Data Lakehouse,并使用纯 SQL 进行数据处理(例如 ETL)和在线分析处理(OLAP)(例如 BI)。所有工作负载都可以在一个平台上使用一份数据副本和一个 SQL 接口来完成。
统一网关
Server模块起到统一网关的作用。该服务器可以通过入口点简化、安全地访问任何集群资源,从而为最终(远程)用户部署不同的工作负载。在这个单一条目的背后,管理员可以通过单一点来配置、安全和控制对集群的远程访问。最终用户可以使用他们所需的任何 Kyuubi 引擎进行无缝数据处理,从而获得更好的体验。
应用程序编程接口
最终用户可以使用下面列出的应用程序编程接口在支持的客户端和 Kyuubi 服务器之间进行连接和互操作。当前的实现是:
Hive 节俭协议
一个与 HiveServer2 兼容的接口,允许最终用户使用 thrift 客户端(跨语言支持,tcp 和 http)、基于 thrift的 Java 数据库连接(JDBC)接口或基于 JDBC的开放数据库连接(ODBC)接口。 to-ODBC 桥与 Kyuubi 进行通信。
RESTful API
它提供系统管理API,包括引擎、会话、操作和其他API。
它提供了允许客户端提交SQL查询并接收查询结果、提交元数据请求并接收元数据结果的方法。
它可以轻松提交用于批处理的独立应用程序,例如 Spark 作业。
MySQL协议
与 MySQL 兼容的接口,允许最终用户使用 MySQL 连接器(例如 Connector/J)与 Kyuubi 进行通信。
我们计划添加更多
如果您有任何想法或问题,请加入我们的邮件列表。
多租户
Kyuubi 支持端到端多租户。在控制层面,Kyuubi服务器提供集中式身份验证层,以降低数据和资源泄露的风险。它支持各种协议,例如 LDAP 和 Kerberos,以保护客户端和服务器之间的网络安全。在数据平面上,Kyuubi 引擎使用相同的可信客户端身份来实例化自身。资源获取以及数据和元数据访问都发生在它们自己的引擎内。因此,集群管理者和存储提供商可以轻松保证数据和资源的安全。此外,Kyuubi还提供引擎授权扩展,将数据安全模型优化到细粒度的行/列级别。请参阅安全页面以获取更多信息。
高可用性
Kyuubi 采用高可用性 (HA) 设计,确保其在指定时间内连续运行而不会出现故障。HA 致力于提供符合商定的运营绩效水平的 Kyuubi。
负载均衡
由于多租户访问,Kyuubi 在实际生产环境中必须确保高可用性。
有效防止单点故障。
它有助于实现计划系统维护的零停机时间
故障可检测性
kyuubi 服务器和引擎的故障和系统负载通过指标、日志等可见。
无服务器 SQL 及更多
Lakehouses 上的无服务器 SQL 使最终用户能够更轻松地从数据世界中获取洞察并优化数据管道。它可以:
使用熟悉的 SQL 处理各种工作负载,获得与 RDBMS 相同的用户体验。
跨不同数据源的广泛且安全的数据访问能力。
通过可扩展的计算资源实现大量数据的高性能。
此外,Kyuubi 还支持无服务器提交代码片段和独立应用程序,以实现更高级的使用。
易于使用
最终用户可以使用 JDBC + SQL 或 REST + 代码以无服务器方式探索数据世界,从而获得优化的体验。对于大多数场景来说,不再需要Spark、Flink等相应引擎的超强能力。也就是说,大部分与部署、运行时优化等相关的工作,应该由Kyuubi服务器端的专业人员来完成。适用于以下场景:
基本发现和探索
快速推断云存储或本地 HDFS 集群中数据湖中各种格式(Parquet、CSV、JSON、文本)的数据。
湖屋形成和分析
通过 Hudi、Iceberg 或/和 Delta Lake 轻松构建 ACID 表存储层。
逻辑数据仓库
在不同数据之上提供关系抽象,无需 ETL 作业(从收集到连接)。
随处、任意规模运行
大多数 Kyuubi 引擎类型都有分布式后端或者可以在运行时调度分布式任务。它们可以在单节点机器或集群(例如 YARN 和 Kubernetes)上处理数据。此外,Kyuubi服务器还支持在裸机或docker中运行。
高性能
查询性能是实施 Serverless SQL 的关键因素之一。在最先进的大数据查询引擎上实现可维护性为我们实现这一目标奠定了基础:
最先进的查询引擎
多种应用以实现高吞吐量
可共享执行运行时以实现低延迟
服务器端全局持续优化
辅助性能插件,例如 Z-Ordering、查询优化器等
Serverless SQL 的另一个目标是让最终用户不需要或很少关心棘手的性能优化问题。