复古 护眼 海天 深邃 暗黑 默认

Proxy

使用 JDK 21 或更高版本,在源码仓库根目录执行以下命令。

打包

./mvnw -B -pl distribution/proxy -am \
  '-P!dev,release,<profiles>' \
  -Dmaven.test.skip=true package

Profile 选择

将 <profiles> 替换为所需 profile,多个值用逗号分隔。

L1 内核层

能力 Profile 包含的实现
元数据 mode-repo-memory Standalone 模式的 Memory 元数据存储
元数据 mode-repo-jdbc Standalone 模式的 JDBC 元数据存储
元数据 mode-repo-zookeeper Cluster 模式的 ZooKeeper 元数据存储与注册中心
元数据 mode-repo-etcd Cluster 模式的 etcd 元数据存储与注册中心
权限 authority-simple Simple 权限实现
权限 authority-database Database 权限实现
事务 transaction-atomikos Atomikos XA 事务管理器
事务 transaction-narayana Narayana XA 事务管理器
事务 transaction-seata Seata AT 事务实现
联邦查询 sql-federation-calcite CALCITE provider 和全部受支持的联邦查询数据库方言
SQL 翻译 sql-translator-native Native SQL 翻译 provider
时间服务 feature-database-time-service 数据库时间服务

L2 功能层

功能 Profile
数据分片 feature-sharding
广播表 feature-broadcast
读写分离 feature-readwrite-splitting
数据加密 feature-encrypt
数据脱敏 feature-mask
影子库 feature-shadow

L3 数据库支持与适配

数据库支持与随带适配

数据库 Profile JDBC 驱动
MySQL db-mysql 需自行添加到 ext-lib/
MariaDB db-mariadb 需自行添加到 ext-lib/
PostgreSQL db-postgresql 随带 postgresql
openGauss db-opengauss 随带 opengauss-jdbc
Oracle db-oracle 需自行添加到 ext-lib/
SQL Server db-sqlserver 需自行添加到 ext-lib/
Firebird db-firebird 随带 jaybird
Hive db-hive 需自行添加到 ext-lib/
Presto db-presto 随带 presto-jdbc
ClickHouse db-clickhouse 随带 clickhouse-jdbc
Doris db-doris 需自行添加到 ext-lib/

需要独立选择的数据库适配

适配的能力 Profile 同时包含的模块
L1 联邦查询 sql-federation-calcite-mysql CALCITE provider 与 MySQL 联邦查询方言
L1 联邦查询 sql-federation-calcite-mariadb CALCITE provider 与 MySQL 联邦查询方言,供 MariaDB 使用
L1 联邦查询 sql-federation-calcite-postgresql CALCITE provider 与 PostgreSQL 联邦查询方言
L1 联邦查询 sql-federation-calcite-opengauss CALCITE provider 与 openGauss 联邦查询方言
L1 联邦查询 sql-federation-calcite-oracle CALCITE provider 与 Oracle 联邦查询方言
L1 联邦查询 sql-federation-calcite-sqlserver CALCITE provider 与 SQL Server 联邦查询方言
L2 数据分片 feature-sharding-mysql 分片功能与 MySQL 分片适配

依赖组合

Profile 用途
default-dep 默认依赖组合
all 全量依赖组合,加入更多数据库和可选实现,例如 Narayana、Seata、SQL 翻译与数据库时间服务
dev Proxy bootstrap 的开发依赖组合,打包时用 !dev 禁用

default-dep 依赖组成

分组 对应 Profile
元数据 mode-repo-memory、mode-repo-jdbc、mode-repo-zookeeper、mode-repo-etcd
权限 authority-simple、authority-database
事务 transaction-atomikos
联邦查询 sql-federation-calcite
功能与适配 feature-sharding-mysql、feature-broadcast、feature-readwrite-splitting、feature-encrypt、feature-mask、feature-shadow
数据库 db-mysql、db-postgresql、db-opengauss、db-oracle、db-sqlserver

Docker 镜像

Profile 用途
docker 在 <profiles> 中追加此 profile 以构建 Docker 镜像,需要 Docker。

制品

distribution/proxy/target/apache-shardingsphere-<version>-shardingsphere-proxy-bin.tar.gz

<version> 为所构建源码的项目版本。

Proxy 发行包的 lib 包含运行时依赖,所选 Hive、Seata AT 模块位于 opt-lib,ext-lib 用于用户补充依赖。