当前位置: 首页 > ops >正文

【Doris】-工具SQLConverter

Doris SQL Converter

介绍

  • Doris 可以支持多种 SQL 方言,如 Presto、Trino、Hive、PostgreSQL、Spark、Clickhouse 等等。通过这个功能,用户可以直接使用对应的 SQL 方言查询 Doris 中的数据,方便用户将原先的业务平滑的迁移到 Doris 中。
  • 建表语句、查询、更新等语句在线转化成Doris语言。

安装

  • 下载地址:https://enterprise-doris-releases.oss-accelerate.aliyuncs.com/sql-converter/sql-converter-1.0.7-bin-x64.tar.gz

  • 在任意 FE 节点,通过以下命令启动服务:

# 配置服务端口
vim apiserver/conf/config.conf# 启动 SQL Converter for Apache Doris 转换服务
sh apiserver/bin/start.sh# 如需前端界面,可在 webserver 中配置相应的端口并启动,不需要前端则可以忽略以下操作
vim webserver/conf/config.conf# 启动前端界面
sh webserver/bin/start.sh

提示
该服务是一个无状态的服务,可随时启停
在 apiserver/conf/config.conf 中配置 port 来指定任意一个可用端口,配置 workers 来指定启动的线程数量。在并发场景中,可以根据需要调整,默认为 1
建议在每个 FE 节点都单独启动一个服务

如需启动前端界面,可以在 webserver/conf/config.conf 中配置 SQL Converter for Apache Doris 转换服务地址,默认是 API_HOST=http://127.0.0.1:5001

  • 通过以下命令,在 Doris 中设置 SQL 方言转换服务的 URL:
set global sql_converter_service_url = "http://127.0.0.1:5001/api/v1/convert,"http://127.0.0.2:5001/api/v1/convert""

127.0.0.1:5001 是 SQL 方言转换服务的部署节点 ip 和端口。
Web server started on http://127.0.0.1:3001/ with api_host: http://127.0.0.1:5001.

web访问地址

  • http://127.0.0.1:3001/

示例

CREATE TABLE  test_sqlconvert (id INT,start_time DATETIME,value STRING,arr_int ARRAY<INT>,arr_str ARRAY<STRING>
) ENGINE=OLAP
DUPLICATE KEY(`id`)
COMMENT 'OLAP'
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES ("replication_allocation" = "tag.location.default: 1"
);INSERT INTO test_sqlconvert VALUES(1, '2024-05-20 13:14:52', '2024-01-14',[1, 2, 3, 3], ['Hello', 'World']);SET sql_dialect = presto;SELECT CAST(start_time AS varchar(20)) AS col1,array_distinct(arr_int) AS col2,FILTER(arr_str, x -> x LIKE '%World%') AS col3,to_date(value,'%Y-%m-%d') AS col4,YEAR(start_time) AS col5,date_add('month', 1, start_time) AS col6,REGEXP_EXTRACT_ALL(value, '-.') AS col7,JSON_EXTRACT('{"id": "33"}', '$.id')AS col8,element_at(arr_int, 1) AS col9,date_trunc('day',start_time) AS col10FROM test_sqlconvertWHERE date_trunc('day',start_time) = DATE '2024-05-20'     
ORDER BY id;
+---------------------+-----------+-----------+------------+------+---------------------+-------------+------+------+---------------------+
| col1                | col2      | col3      | col4       | col5 | col6                | col7        | col8 | col9 | col10               |
+---------------------+-----------+-----------+------------+------+---------------------+-------------+------+------+---------------------+
| 2024-05-20 13:14:52 | [1, 2, 3] | ["World"] | 2024-01-14 | 2024 | 2024-06-20 13:14:52 | ['-0','-1'] | "33" |    1 | 2024-05-20 00:00:00 |
+---------------------+-----------+-----------+------------+------+---------------------+-------------+------+------+---------------------+SET sql_dialect = clickhouse;SELECT toString(start_time) AS col1,arrayCompact(arr_int) AS col2,arrayFilter(x -> x LIKE '%World%',arr_str) AS col3,toDate(value) AS col4,toYear(start_time) AS col5,addMonths(start_time, 1) AS col6,extractAll(value, '-.') AS col7,JSONExtractString('{"id": "33"}' , 'id') AS col8,arrayElement(arr_int, 1) AS col9,date_trunc('day',start_time) AS col10FROM test_sqlconvertWHERE date_trunc('day',start_time)= '2024-05-20 00:00:00'     
ORDER BY id;
+---------------------+-----------+-----------+------------+------+---------------------+-------------+------+------+---------------------+
| col1                | col2      | col3      | col4       | col5 | col6                | col7        | col8 | col9 | col10               |
+---------------------+-----------+-----------+------------+------+---------------------+-------------+------+------+---------------------+
| 2024-05-20 13:14:52 | [1, 2, 3] | ["World"] | 2024-01-14 | 2024 | 2024-06-20 13:14:52 | ['-0','-1'] | "33" |    1 | 2024-05-20 00:00:00 |
+---------------------+-----------+-----------+------------+------+---------------------+-------------+------+------+---------------------+

在这里插入图片描述

http://www.xdnf.cn/news/17791.html

相关文章:

  • Stagehand深度解析:从开源自动化工具到企业级RPA平台的演进之路
  • VisualStudio2022调试Unity C#代码步骤
  • 第2篇_Go语言基础语法_变量常量与数据类型
  • Android项目中Ktor的引入与使用实践
  • 在 Linux 服务器搭建Coturn即ICE/TURN/STUN实现P2P(点对点)直连
  • 图论Day3学习心得
  • 无脑整合springboot2.7+nacos2.2.3+dubbo3.2.9实现远程调用及配置中心
  • 计算机网络 THU 考研专栏简介
  • L2 级别自动驾驶 硬件架构设计
  • LeetCode 922.按奇偶排序数组2
  • ElasticSearch不同环境同步索引数据
  • Spring Ai 如何配置以及如何搭建
  • Jmeter自定义脚本
  • 零基础学会制作 基于STM32单片机智能加湿系统/加湿监测/蓝牙系统/监测水量
  • 探索无人机图传技术:创新视野与无限可能
  • 在 macOS 上顺利安装 lapsolver
  • OpenCV Python——VSCode编写第一个OpenCV-Python程序 ,图像读取及翻转cv2.flip(上下、左右、上下左右一起翻转)
  • 死锁总结及解决方案
  • 关于截屏时实现游戏暂停以及本地和上线不同步问题
  • 用GPT解释“GPT-5”是什么,有什么优势
  • python-pycharm切换python各种版本的环境与安装python各种版本的环境(pypi轮子下载)
  • Flink Stream API 源码走读 - map 和 flatMap
  • KNN(k近邻算法)
  • Chrome插件开发实战:从架构到发布全流程
  • 准备用Qt6 重写音视频会议系统服务端
  • 开源 Arkts 鸿蒙应用 开发(十五)自定义绘图控件--仪表盘
  • 开源 Arkts 鸿蒙应用 开发(十六)自定义绘图控件--波形图
  • 【Javaweb学习|黑马笔记|Day1】初识,入门网页,HTML-CSS|常见的标签和样式|标题排版和样式、正文排版和样式
  • 前端css学习笔记6:盒子模型
  • 国内著名AI搜索优化专家孟庆涛发表《AI搜索内容可信度评估综合指南》