Apache Gravitino 之 Trino connector 初体验

360影视 欧美动漫 2025-06-17 16:05 4

摘要:Trino 可以使用 Apache Gravitino 提供的 Gravitino Trino Connector 来实现动态管理 Catalog,同时可以与其他组件实现统一的 metadata 管理。

Trino 可以使用 Apache Gravitino 提供的 Gravitino Trino Connector 来实现动态管理 Catalog,同时可以与其他组件实现统一的 metadata 管理。

// 镜像拉取与启动docker pull apache/gravitino:0.9.0-incubatingdocker run -d --name gravitino -i -p 8090:8090 apache/gravitino:0.9.0-incubating// JDBC-Driver 需要独自下载并复制到 Gravitino 容器对应的目录中docker cp mysql-connector-java-8.0.11.jar gravitino:/root/gravitino/catalogs/jdbc-mysql/libs// 重启docker restart:8090/

根据官方文档建议,我们选择 MySQL 8.0 版本

// 镜像拉取与启动docker pull mysql:8.0.33docker run -d --name mysql8 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mysql:8.0.33 // 登陆 docker exec -it mysql8 mysql -uroot -p

建测试库表

-- 查看现有数据库SHOW DATABASES;-- 创建新数据库CREATE DATABASE testdb;-- 使用数据库USE testdb;-- 创建表示例CREATE TABLE users (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50) NOT NULL,email VARCHAR(100),created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);-- 插入数据INSERT INTO users (name, email) VALUES ('test', 'test@example.com');-- 查询数据SELECT * FROM users;

由于笔者测试时 Gravitino 和 MySQL容器在同一台服务器上,因此使用 Docker Network 进行连接。

docker network create my-networkdocker network connect gravitino-mysql gravitinodocker network connect gravitino-mysql mysql8

接下来创建一个 Catalog,连接建立后 Gravitino 便可以获取到 schema 及 table

根据官方建议我们选择 439 版本

docker run --name trino -d -p 8080:8080 trinodb/trino:439docker network connect gravitino-mysql trino// 下载wget https://github.com/apache/gravitino/releases/gavitino-trino-connector-0.9.0-incubating.tar.gz// 解压tar -zxvf gavitino-trino-connector-0.9.0-incubating.tar.gz// 将目录复制到Trino容器的插件目录docker cp gravitino-trino-connector-0.9.0-incubating gravitino:/lib/trino/plugin

Trino 开启动态 Catalog 配置,Gravitino 是通过生成 CREATE CATAGLOG语句,并在当前的Trino 服务器上执行该语句,向Trino注册 Catalog。

// 进入 trino 容器docker exec -it trino bash// 开启动态 catalog 配置echo "catalog.management=dynamic" >> /etc/trino/config.properties// 编写 properties 文件vim gravitino.properties// 加入以下内容connector.name=gravitinogravitino.uri=http://gravitino:8090gravitino.metalake=test// 复制到 Trino 容器中docker cp gravitino.properties trino:/etc/trino/catalog

重启 Trino 生效,并测试

docker restart trino// 测试docker exec -it trino trinotrino> show catalogs// 如果有问题则排查日志docker log --tail 300 trino

来源:SapphireCoder

相关推荐