网站首页 > 编程文章 正文
导语
StarRocks 支持多种类型的外部表 (external table) ,极大的方便其他的外部数据源的数据以外表的方式接入到StarRocks 实例内,可以直接向外部表所在数据源发起查询。目前 StarRocks 已支持的第三方数据源包括 MySQL、Elasticsearch、Apache Hive?、StarRocks、Apache Iceberg 和 Apache Hudi。本文介绍的是 jdbc外表,该类型外表功能自 2.3.0 版本开始,通过它无需将 jdbc 资源的数据导入至 StarRocks,即可实现对这类数据库的极速分析。
体验
## 前提条件
在使用 JDBC 外表时, FE、BE 节点会下载或本地先部署 JDBC 驱动程序,因此 FE、BE 节点所在机器必须能够访问用于下载 JDBC 驱动程序 JAR 包的 URL,该 URL 由创建 JDBC 资源中的配置项 driver_url 指定。如果FE、BE 节点不能访问远程驱动程序 JAR 包的 URL 可以选择使用本地访问的模式,我这里就是部署使用本地驱动文件,该驱动文件需要部署到集群中的所有节点上的相同目录下。
## 创建和管理 JDBC 资源
备注:这里以外部 StarRocks 资源举例,实现在 StarRocks A集群中查询 StarRocks B的数据。StarRocks jdbc 数据源的驱动可以使用 MySQL 驱动。这里我是本地部署,先去 MySQL 官方下载 jdbc 驱动,我的驱动包版本是 “mysql-connector-java-5.1.49.jar”。
create external resource jdbc_ming025
properties (
"type"="jdbc",
"user"="ming",
"password"="changeme",
"jdbc_uri"="jdbc:mysql://ming.local:9230/dw",
"driver_url"="file:///data/mingsr/jar3/mysql-connector-java-5.1.49.jar",
"driver_class"="com.mysql.jdbc.Driver"
);
properties 的必填配置项:
- type:资源类型,固定取值为 jdbc。
- user:目标数据库用户名。
- password:目标数据库用户登录密码。
- jdbc_uri:JDBC 驱动程序连接目标数据库的 URI,需要满足目标数据库 URI 的语法。常见的目标数据库 URI,请参见 MySQL、Oracle、PostgreSQL、SQL Server 官网文档。
- driver_url:用于下载 JDBC 驱动程序 JAR 包的 URL,支持使用 HTTP 协议 或者 file 协议。
- driver_class:JDBC 驱动程序的类名称。MySQL:com.mysql.jdbc.Driver(MySQL 5.x 及以下版本)、com.mysql.cj.jdbc.Driver (MySQL 8.x 及以上版本)。
## 查看 jdbc 资源
show resources;
## 删除 jdbc 资源
drop resource "jdbc_ming025";
说明:删除 JDBC 资源会导致使用该 JDBC 资源创建的 JDBC 外部表不可用,但目标数据库的数据并不会丢失。如果仍需要通过 StarRocks 查询目标数据库的数据,可以重新创建 JDBC 资源和 JDBC 外部表。
## 创建 jdbc 外部表
create external table ext0_dw_ord_order (
`cal_dt` date NULL COMMENT "更新日期",
`order_id` bigint(20) NULL COMMENT "订单ID",
`create_dt` varchar(64) NULL COMMENT "订单创建日期"
) ENGINE=jdbc
properties (
"resource"="jdbc_ming025",
"table"="dw_ord_order"
);
properties 配置项:
- resource:所使用 JDBC 资源的名称,必填项。
- table:目标数据库表名,必填项。
建外表定义字段类型时需要注意,StarRocks 自有的数据类型附属定义,例如“SUM、MAX、MIN、REPLACE、HLL_UNION、BITMAP_UNION、REPLACE_IF_NOT_NULL”这些都要先处理去除,仅保留基础数据类型定义。
## 查询 jdbc 外表
查询 jdbc 外部表前,必须启动 Pipeline 引擎。
show global variables like 'enable_pipeline_engine';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| enable_pipeline_engine | true |
+------------------------+-------+
到此,对该外表执行 select 语句,通过 JDBC 外部表查询目标数据库的数据。
结语
StarRocks 的外部表类型很多,各有适用场景和缺陷。
猜你喜欢
- 2024-09-08 JDBC数据库连接怎么操作?(jdbc连接数据库实例)
- 2024-09-08 mysql 5 & 8 JDBC的差别(mysql和jdbc的关系)
- 2024-09-08 肝!Spring JDBC持久化层框架“全家桶”教程
- 2024-09-08 0467-Hadoop SQL客户端工具之Dbeaver安装及使用
- 2024-09-08 离线端Pycharm中Database工具数据库驱动程序的安装
- 2024-09-08 JDBC数据库开发(一)(jdbc如何实现数据库访问)
- 2024-09-08 0312-如何在Kerberos环境下使用Spark2通过JDBC访问Impala
- 2024-09-08 Kafka连接器深度解读之JDBC源连接器
- 2024-09-08 JDBC、SQL注入攻击原理以及解决方案
- 2024-09-08 大数据开发基础之JAVA基础-JDBC基础知识
你 发表评论:
欢迎- 最近发表
-
- 数据不丢失 从Windows 11的DEV版降级到正式版
- Win11学院:在Windows11 25905预览版中如何启用Dev Drive
- DEVC++的卸载(devcon卸载驱动)
- win11 dev 开发版 升级攻略完整版
- 最新Windows11+Windows10系统各种版本永久激活密钥以及下载链接
- 想学Python,却还记不住语法?神仙书籍 python背记手册双手奉上
- 如何用Python语言开发大型服务器程序
- 30天Python 入门到精通(python零基础入门到精通)
- 入门扫盲:9本自学Python PDF书籍,让你避免踩坑,轻松变大神!
- 学好Python需要看的4本书推荐(学python好用的书)
- 标签列表
-
- spire.doc (59)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- sqljdbc4.jar下载 (56)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- 苹果ios字体下载 (56)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)