Phoenix对接Superset+Presto

本文介绍了如何将Phoenix与Superset和Presto整合,包括安装prestosql、配置Presto连接Phoenix、在Superset中添加Presto数据源以及解决时区和数据类型转换问题。

Phoenix对接Superset+Presto

安装prestosql

参考:https://prestosql.io/docs/current/installation/deployment.html

Presto配置Phoenix连接

新建文件/presto-server-331/etc/catalog/phoenix.propertie
添加配置:

connector.name=phoenix
case-insensitive-name-matching=true
phoenix.connection-url=jdbc:phoenix:xxx,xxx,xxxx:2181:/hbase
phoenix.config.resources=/home/presto/hbase-site.xml,/home/presto/core-site.xml,/home/presto/hdfs-site.xml,/home/presto/ssl-client.xml`

重启Presto服务

bin/launcher restart

命令参考:

bin/launcher --help
Usage: launcher [options] command

Commands: run, start, stop, restart, kill, status

Options:
-h, --help               show this help message and exit
-v, --verbose            Run verbosely
--etc-dir=DIR            Defaults to INSTALL_PATH/etc
--launcher-config=FILE   Defaults to INSTALL_PATH/bin/launcher.properties
--node-config=FILE       Defaults to ETC_DIR/node.properties
--jvm-config=FILE        Defaults to ETC_DIR/jvm.config
--config=FILE            Defaults to ETC_DIR/config.properties
--log-levels-file=FILE   Defaults to ETC_DIR/log.properties
--data-dir=DIR           Defaults to INSTALL_PATH
--pid-file=FILE          Defaults to DATA_DIR/var/run/launcher.pid
--launcher-log-file=FILE Defaults to DATA_DIR/var/log/launcher.log (only in
                         daemon mode)
--server-log-file=FILE   Defaults to DATA_DIR/var/log/server.log (only in
                         daemon mode)
-D NAME=VALUE            Set a Java system property

查看Presto中Phoenix表

./presto-server-331/presto --server localhost:8080 --catalog phoenix

presto> show schemas;
       Schema       
--------------------
 default            
 information_schema 
 mytest             
 system             
(4 rows)

Query 20200328_020428_00002_5z3ak, FINISHED, 2 nodes
Splits: 36 total, 36 done (100.00%)
0:00 [4 rows, 57B] [11 rows/s, 164B/s]

presto> use default;
USE
presto:default> show tables;
               Table                
------------------------------------
省略.....
...
...
...
(24 rows)

Query 20200328_020518_00006_5z3ak, FINISHED, 2 nodes
Splits: 36 total, 36 done (100.00%)
0:00 [24 rows, 824B] [115 rows/s, 3.87KB/s]


presto:default> exit

Supserset中添加Presto

QQ截图20200328101017.png
QQ截图20200328101708.png

查询Phoenix数据

QQ截图20200328101526.png
image.png

问题:MySQL->PHONEIX->presto

  • 由于PHONEIX中存储是GMT时区,会差8个小时,。也是查询phoniex的话还得加8小时,后来presto中不支持TimeStamp,直接改为bigint类型
  • phoenix中的decimal类型在碰到类似1000的话会存储格式为科学记数法,比如1.32E+4
  • 创建索引的时候,MySQL中的unique index 在phoenix中没有,只有CONSTRAINT pk PRIMARY KEY这种组合primary key
  • MySQL中bit改为了tinyInt类型存储在Phoenix中
虽然给定引用中没有直接关于在WSL的Ubuntu系统中使用Docker部署Superset并连接本地MySQL的内容,但可以根据已有信息推测步骤如下: ### 环境准备 系统要求为Linux(推荐Ubuntu 20.04/22.04)或macOS,Windows可用WSL2,内存建议 ≥ 4GB(Superset + ClickHouse) ,需要安装Docker & Docker Compose(推荐方式,避免环境冲突) [^2]。 ### 使用Docker部署Superset 根据Superset Docker Compose,可参考其PostgreSQL连接信息(虽此处是连接MySQL,但部署思路可借鉴)。在WSL的Ubuntu系统中,先确保Docker和Docker Compose正常运行。之后可通过相关的Docker Compose文件来部署Superset,不过具体的Docker Compose文件内容需进一步查阅官方文档或相关资源进行配置。 ### 连接本地MySQL 要连接本地MySQL,需要在Superset中进行相应配置。首先要知道MySQL的连接信息,如主机名、端口、数据库名、用户名和密码。假设MySQL运行在本地,主机名可能是`localhost` ,端口一般是`3306`。在Superset中配置数据源时,填入这些信息,类似于Superset连接PostgreSQL填入相关信息一样。 示例代码(假设已有合适的Docker Compose文件`docker-compose.yml` ): ```bash # 启动Docker Compose服务 docker-compose up -d ``` 在Superset中配置MySQL数据源的Python代码示例(假设使用Superset的API): ```python # 这里只是示例,实际需要根据Superset的API文档进行调整 import requests # 假设Superset的API地址 superset_api_url = "http://localhost:8088/api/v1/database/" # 假设的MySQL连接信息 mysql_config = { "database_name": "your_database_name", "sqlalchemy_uri": "mysql+pymysql://your_username:your_password@localhost:3306/your_database_name" } # 发送请求添加数据源 response = requests.post(superset_api_url, json=mysql_config) print(response.json()) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奈文摩尔ST

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值