作者:微信小助手
发布时间:2024-09-12T23:29:18
Lakehouse 管理系统
一、架构图
Amoro 为用户、平台和产品构建湖原生数据仓库和架构
二、主要特点
1、自我优化
持续优化表,包括压缩小文件,变更文件,定期删除过期文件,以保持较高的查询性能并降低存储成本。
2、目录服务
为所有计算引擎提供统一的目录服务,并可与现有的元数据存储服务(如Hive Metastore、AWS Glue)一起使用。
3、管理工具
提供多种管理工具,包括WEB UI和标准SQL命令行,帮助您更快上手并更轻松地与其他系统集成。
4、多种格式
支持Iceberg、Paimon、Mixed-Iceberg、Mixed-Hive等不同的表格式,满足不同的场景需求,并提供统一的管理能力。
5、丰富的插件
提供各种插件以便与其他系统集成,例如使用 Flink 进行持续优化以及使用 Spark 和 Kyuubi 进行数据分析。
6、独立于基础设施
可在私有环境、云环境、混合云环境、多云环境中轻松部署和使用。
7、支持多处理引擎
三、快速入门
快速体验其核心功能。您可以选择使用或Iceberg Format来Mixed-Iceberg Format完成整个过程。在开始快速演示之前,需要执行一些步骤来准备环境。最快的入门方法是使用使用 apache/amoro 映像的 docker-compose 文件。要使用它,您需要安装 Docker CLI以及Docker Compose CLI。
拥有这些之后,将下面的 yaml 保存到名为 docker-compose.yml 的文件中:
version: "3"
services:
minio:
image: minio/minio
container_name: minio
environment:
- MINIO_ROOT_USER=admin
- MINIO_ROOT_PASSWORD=password
- MINIO_DOMAIN=minio
networks:
amoro_network:
aliases:
- warehouse.minio
ports:
- 9001:9001
- 9000:9000
command: [ "server", "/data", "--console-address", ":9001" ]
mc:
depends_on:
- minio
image: minio/mc
container_name: mc
networks:
amoro_network:
environment:
- AWS_ACCESS_KEY_ID=admin
- AWS_SECRET_ACCESS_KEY=password
- AWS_REGION=us-east-1
entrypoint: >
/bin/sh -c "
until (/usr/bin/mc config host add minio http://minio:9000 admin password) do echo '...waiting...' && sleep 1; done;
/usr/bin/mc rm -r --force minio/warehouse;
/usr/bin/mc mb minio/warehouse;
/usr/bin/mc policy set public minio/warehouse;
tail -f /dev/null
"
amoro:
image: apache/amoro
container_name: amoro
ports:
- 8081:8081
- 1630:1630
- 1260:1260
environment:
- JVM_XMS=1024
networks:
amoro_network:
aliases:
- warehouse.minio
volumes:
- ./amoro:/tmp/warehouse
command: ["/entrypoint.sh", "ams"]
tty: true
stdin_open: true
networks:
amoro_network:
driver: bridge
接下来,使用以下命令启动 docker 容器:
docker-compose up
3.1、准备步骤
在浏览器中打开
http://localhost:1630
用户名/密码:admin/admin ,输入即可登录仪表盘。
点击Optimizing
侧边栏的 ,选择Optimizer Groups
并点击Add Group
按钮在创建目录之前创建一个新组:
点击Catalogs侧边栏的 ,点击+Catalog List下的按钮,创建一个测试目录,并将其命名为demo_catalog:
将优化器的并发度设置为1,然后单击OK
。
然后你可以切换到标签页Optimizers
,你可以在这里找到新启动的优化器。
3.2、演示
3.2.1、初始化
点击Terminal
侧边栏的 ,你可以在这里使用 SQL 创建测试表。终端目前支持执行 Spark SQL 语句。
点击RUN
SQL编辑器上方的按钮,等待SQL查询执行完毕,即可在SQL编辑器下看到查询结果。
3.2.2、改变数据
在中逐个执行以下 SQL 语句Terminal
:
-- insert a few rows first
INSERT INTO db.user (id, name, ts) VALUES (4, 'rock', CAST('2022-07-02 01:11:20' AS TIMESTAMP));
INSERT INTO db.user (id, name, ts) VALUES (5, 'jack', CAST('2022-07-02 05:22:10' AS TIMESTAMP));
INSERT INTO db.user (id, name, ts) VALUES (6, 'mars', CAST('2022-07-02 08:23:20' AS TIMESTAMP));
INSERT INTO db.user (id, name, ts) VALUES (7, 'cloe', CAST('2022-07-02 08:44:50' AS TIMESTAMP));
INSERT INTO db.user (id, name, ts) VALUES (8, 'smith', CAST('2022-07-02 10:52:20' AS TIMESTAMP));
INSERT INTO db.user (id, name, ts) VALUES (9, 'piec', CAST('2022-07-02 11:24:30' AS TIMESTAMP));
INSERT INTO db.user (id, name, ts) VALUES (10, 'vovo', CAST('2022-07-02 12:00:20' AS TIMESTAMP));
-- delete some rows then
DELETE FROM db.user where id = 1;
DELETE FROM db.user where id = 4;
DELETE FROM db.user where id = 7;
-- query the table
SELECT * from db.user;
3.2.3、检查自我
您也可以Optimizing
通过侧边栏进入页面,查看当前所有表的优化状态。
四、官网地址:
官网地址
https://amoro.apache.org/