Horizontal:面向横向数据联邦的分组聚合查询算法
Vertical:面向纵向数据联邦的分组聚合查询算法
-
Ubuntu 18.04
-
Docker
-
Java 11
-
Apache Maven 3.6.0+
**注意:**以下测试为在 Ubuntu 系统上进行,但理论上其他操作系统也完全能够正常运行,如:macOS、Windows
- 首先,确保相关环境齐全。
- 【可选】向当前帐户授予 Docker 权限,可以尝试运行 “docker run hello-world”。如果没有看到包含 “Permission Denied” 字样的消息,则无需继续执行此步骤。
# 检查 Docker 组是否存在
cat /etc/group | grep docker
# 如果缺少 Docker 组,请创建.
sudo groupadd docker
# 将当前用户添加到 Docker 组.
sudo usermod -aG docker $USER
- 克隆 Git 仓库
git@github.com:ZichengCao/Island-Linker.git
- 选择指定项目
# 横向数据联邦的分组聚合查询算法
cd Horizontal
# 纵向数据联邦的分组聚合查询算法
cd Vertical
- 使用 Docker 部署数据联邦环境,并初始化数据方
docker pull postgres:13
chmod +x ./package.sh && ./package.sh
chmod +x ./deploy.sh && ./deploy.sh
- 您可以通过执行以下命令来验证数据容器是否已成功初始化
# 如果正确显示数据表的 Java 版本和行数,则表示初始化成功。
docker exec -u postgres container1 bash -c 'java --version && psql postgres -c "select count(*) from lineitem"'
docker exec -u postgres container2 bash -c 'java --version && psql postgres -c "select count(*) from lineitem"'
docker exec -u postgres container3 bash -c 'java --version && psql postgres -c "select count(*) from lineitem"'
- 启动所有数据方服务
cd release
./start-server.sh
- 执行查询
# 可以通过 java -jar core.jar -h 查看参数说明
java -jar core.jar -i test_sum.sql -p private
如果希望运行自定义查询,则应执行以下步骤,以及对某些配置文件的修改:
- 构建多个 Docker 容器,配置包括 Postgres 13+ 和 Java 11+,并将容器的指定端口(可以通过修改
container/config.json
中的serverPort
项来指定)映射到主机的自定义端口上(可通过deploy.sh
中的创建docker 容器命令修改) - 修改
release/config.json
文件,使用上一步中配置的 "主机机器的本地网络 IP + 映射到主机机器的端口号" 表示各个容器。 - 修改
release/container/config.json
文件,配置相应容器的 Postgresql 数据库的访问链接。
对于使用真实的多台机器环境而不是 Docker 容器的情况,整体步骤类似,但需要针对实际情况进行配置和操作。