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

doris: PostgreSQL

Doris JDBC Catalog 支持通过标准 JDBC 接口连接 PostgreSQL 数据库。本文档介绍如何配置 PostgreSQL 数据库连接。

使用须知​

要连接到 PostgreSQL 数据库,您需要

  • PostgreSQL 11.x 或更高版本

  • PostgreSQL 数据库的 JDBC 驱动程序,您可以从 Maven 仓库下载最新或指定版本的 PostgreSQL JDBC 驱动程序。推荐使用 PostgreSQL JDBC Driver 42.5.x 及以上版本。

  • Doris 每个 FE 和 BE 节点和 PostgreSQL 服务器之间的网络连接,默认端口为 5432。

连接 PostgreSQL​

CREATE CATALOG postgresql PROPERTIES ("type"="jdbc","user"="root","password"="secret","jdbc_url" = "jdbc:postgresql://example.net:5432/postgres","driver_url" = "postgresql-42.5.6.jar","driver_class" = "org.postgresql.Driver"
)

备注

jdbc_url 定义要传递给 PostgreSQL JDBC 驱动程序的连接信息和参数。 支持的 URL 的参数可在 PostgreSQL JDBC 驱动程序文档 中找到。

连接安全​

如果您使用数据源上安装的全局信任证书配置了 TLS,则可以通过将参数附加到在 jdbc_url 属性中设置的 JDBC 连接字符串来启用集群和数据源之间的 TLS。

例如,对于版本 42 的 PostgreSQL JDBC 驱动程序,通过将 ssl=true 参数添加到 jdbc_url 配置属性中启用 TLS:

"jdbc_url"="jdbc:postgresql://example.net:5432/database?ssl=true"

有关 TLS 配置选项的更多信息,请参阅 PostgreSQL JDBC 驱动程序文档。

层级映射​

映射 PostgreSQL 时,Doris 的一个 Database 对应于 PostgreSQL 中指定 database 下的一个 Schema(如示例中 jdbc_url 参数中 postgres 下的 schemas)。而 Doris 的 Database 下的 Table 则对应于 PostgreSQL 中,该 Schema 下的 Tables。即映射关系如下:

DorisPostgreSQL
CatalogDatabase
DatabaseSchema
TableTable

类型映射​

PostgreSQL 到 Doris 类型映射​

PostgreSQL TypeDoris TypeComment
booleanBOOLEAN
smallint/int2SMALLINT
integer/int4INT
bigint/int8BIGINT
decimal/numericDECIMAL
real/float4FLOAT
double precisionDOUBLE
smallserialSMALLINT
serialINT
bigserialBIGINT
charCHAR
varchar/textSTRING
timestamp/timestampzDATETIME
dateDATE
json/jsonbSTRING
timeSTRING
intervalSTRING
point/line/lseg/box/path/polygon/circleSTRING
cidr/inet/macaddrSTRING
bitBOOLEAN/STRING
uuidSTRING
OtherUNSUPPORTED

提示

  • 无精度 numeric 会被映射为 String 类型,进行数值计算时需要先转换为 DECIMAL 类型,且不支持回写。
  • 为了更好的读取与计算性能均衡,Doris 会将 JSON 类型映射为 STRING 类型。
  • Doris 不支持 BIT 类型,BIT 类型会在 BIT(1) 时被映射为 BOOLEAN,其他情况下映射为 STRING。
  • Doris 不支持 time 类型,TIME 类型会被映射为 STRING。

时间戳类型处理​

由于 Doris 不支持带时区的时间戳类型,所以在读取 PostgreSQL 的 timestampz 类型时,Doris 会将其映射为 DATETIME 类型,且会在读取时转换成本地时区的时间。

且由于在 JDBC 类型 Catalog 读取数据时,BE 的 Java 部分使用 JVM 时区。JVM 时区默认为 BE 部署机器的时区,这会影响 JDBC 读取数据时的时区转换。

为了确保时区一致性,建议在 be.conf 的 JAVA_OPTS 中设置 JVM 时区与 Doris session 的 time_zone 一致。

查询优化​

谓词下推​

当执行类似于 where dt = '2022-01-01' 这样的查询时,Doris 能够将这些过滤条件下推到外部数据源,从而直接在数据源层面排除不符合条件的数据,减少了不必要的数据获取和传输。这大大提高了查询性能,同时也降低了对外部数据源的负载。

行数限制​

如果在查询中带有 limit 关键字,Doris 会将 limit 下推到 PostgreSQL,以减少数据传输量。

转义字符​

Doris 会在下发到 PostgreSQL 的查询语句中,自动在字段名与表名上加上转义符:(""),以避免字段名与表名与 PostgreSQL 内部关键字冲突。

相关文章:

doris: PostgreSQL

Doris JDBC Catalog 支持通过标准 JDBC 接口连接 PostgreSQL 数据库。本文档介绍如何配置 PostgreSQL 数据库连接。 使用须知​ 要连接到 PostgreSQL 数据库,您需要 PostgreSQL 11.x 或更高版本 PostgreSQL 数据库的 JDBC 驱动程序,您可以从 Maven 仓…...

深度学习笔记——神经网络

本文为在拓尔思智能举办的训练营中学习内容的总结,部分内容摘自百度百科 个人在这里推荐一个好用的软件,Trae,主要是免费。 人工神经元是人工神经网络的基本单元。模拟生物神经元,人工神经元有1个或者多个输入(模拟多…...

django中路由配置规则的详细说明

在 Django 中,路由配置是将 URL 映射到视图函数或类视图的关键步骤,它决定了用户请求的 URL 会触发哪个视图进行处理。以下将详细介绍 Django 中路由配置的规则、高级使用方法以及多个应用配置的规则。 基本路由配置规则 1. 项目级路由配置 在 Django 项目中,根路由配置文…...

关于tomcat使用中浏览器打开index.jsp后中文显示不正常是乱码,但英文正常的问题

如果是jsp文件就在首行加 “<% page language"java" contentType"text/html; charsetUTF-8" pageEncoding"UTF-8" %>” 如果是html文件 在head标签加入&#xff1a; <meta charset"UTF-8"> 以jsp为例子&#xff0c;我们…...

pytest结合allure

Allure 一、文档二、指令三、装饰器3.1 allure.step装饰器3.2 allure.description装饰器3.3 allure.title装饰器3.4 allure.link、allure.issue 和 allure.testcase装饰器3.5 allure.epic、allure.feature 和 allure.story装饰器3.6 allure.severity装饰器 一、文档 allure文档…...

机器学习在地图制图学中的应用

原文链接&#xff1a;https://www.tandfonline.com/doi/full/10.1080/15230406.2023.2295948#abstract CSDN/2025/Machine learning in cartography.pdf at main keykeywu2048/CSDN GitHub 核心内容 本文是《制图学与地理信息科学》特刊的扩展评论&#xff0c;系统探讨了机…...

vue2升vue3,uniapp兼容鸿蒙app踩坑记录

前提&#xff1a;最近鸿蒙势头很好&#xff0c;公司的 uniapp vue2 项目&#xff0c;要兼容鸿蒙app。就开始了我的uniapp转鸿蒙踩坑之旅&#xff0c;请看下文&#xff08;注意下文都是在uniapp开发基础上&#xff09; 1. 首先鸿蒙开发只支持Vue3&#xff0c;不支持Vue2、不支持…...

Linux基础网络设置

文章目录 Linux基础网络设置介绍查看和配置网络接口查看活动网络接口信息临时修改网卡IP地址永久修改IP地址启用和关闭网卡 主机名设置查看和临时修改主机名永久修改主机名 路由表设置查看路由表信息 网络连接状态和接口统计信息查看网络连接状态 网络连通性测试测试网络连通性…...

DeepSeek × 豆包深度整合指南:工作流全解析

DeepSeek 豆包深度整合指南&#xff1a;工作流全解析 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;可以分享一下给大家。点击跳转到网站。 https://www.captainbed.cn/ccc 文章目录 DeepSeek 豆包深度整合指南&#xff1a;工…...

海思Hi3516DV300交叉编译opencv

OpenCV是一个开源的跨平台计算机视觉库&#xff0c;支持C、Python等多种语言&#xff0c;适用于图像处理、目标检测、机器学习等任务。其核心由C编写&#xff0c;高效轻量&#xff0c;提供实时视觉处理功能&#xff0c;广泛应用于工业自动化、医疗影像等领域。 1 环境准备 1…...

【AI赋能】AI 工具生成视频教材:从创意到成品的全流程指南

AI 工具生成视频教材&#xff1a;从创意到成品的全流程指南 目标 通过本教材&#xff0c;您将学会如何利用 AI 工具&#xff08;Grok、Sora、Speechify 和 CapCut&#xff09;生成一个完整的视频&#xff0c;包括脚本生成、视频片段制作、字幕添加、音频生成以及最终剪辑合成…...

[FE] React 初窥门径(五):React 组件的加载过程(commit 阶段)

1. 回顾 前一篇文章我们看到&#xff0c;ReactDOM.render 总共包含这些步骤&#xff0c; 然后介绍了 performSyncWorkOnRoot 做的事情&#xff0c;它主要做了两件事&#xff0c; renderRootSync 可称之为 render 阶段&#xff1a;创建了一颗 Fiber Tree&#xff08;包含 html …...

Linux(Centos 7.6)命令详解:vim

1.命令作用 vi/vim 是Linux 系统内置不可或缺的文本编辑命令&#xff0c;vim 是vi 的加强版本&#xff0c;兼容vi 的所有指令&#xff0c;不仅能编辑文本&#xff0c;而且还具有shell 程序编辑的功能&#xff0c;可以不同颜色的字体来辨别语法的正确性。 2.命令语法 usage: …...

Kubernetes Pod网络组件解析与选型指南

前言 在Kubernetes集群中&#xff0c;Pod网络插件是支撑容器间通信的核心基础设施。它决定了Pod如何跨节点互联、如何与外部服务交互&#xff0c;甚至如何实现网络安全策略。本文将从技术原理、主流方案对比到选型实践&#xff0c;全方位解析Pod网络组件的设计哲学与落地策略。…...

java环境部署

java环境部署 一、准备工作 jrejdkeclipse jdk下载&#xff1a;21和1.8-----官网&#xff1a;Oracle&#xff1a;Java 下载 |神谕 该处选择要依据自身的系统类型选择下载 idea的下载安装&#xff1a;IntelliJ IDEA | Other Versions 二、安装 三、环境配置 四、使用 五、i…...

100天精通Python(爬虫篇)——第115天:爬虫在线小工具_Curl转python爬虫代码工具(快速构建初始爬虫代码)

文章目录 一、curl是什么&#xff1f;二、爬虫在线小工具&#xff08;牛逼puls&#xff09;三、实战操作 一、curl是什么&#xff1f; 基本概念&#xff1a;curl 支持多种协议&#xff0c;如 HTTP、HTTPS、FTP、SFTP 等&#xff0c;可用于从服务器获取数据或向服务器发送数据&a…...

查看k8s集群的资源使用情况

查看Kubernetes&#xff08;k8s&#xff09;集群的资源使用情况有多种方法&#xff0c;以下是一些常见的方式&#xff1a; 使用kubectl命令行工具 查看节点资源使用情况 kubectl top nodes命令可以显示集群中各个节点的CPU和内存使用情况。例如&#xff1a; NAME …...

【渗透测试】基于时间的盲注(Time-Based Blind SQL Injection)

发生ERROR日志告警 查看系统日志如下&#xff1a; java.lang.IllegalArgumentException: Illegal character in query at index 203: https://api.weixin.qq.com/sns/jscode2session?access_token90_Vap5zo5UTJS4jbuvneMkyS1LHwHAgrofaX8bnIfW8EHXA71IRZwsqzJam9bo1m3zRcSrb…...

Electron应用中获取设备唯一ID和系统信息

让我创建一篇关于如何在Electron应用中获取设备唯一ID和系统信息&#xff0c;并在登录时使用这些信息的博客文章。我将确保步骤明确、条理清晰&#xff0c;适合初学者和有经验的开发者。 这篇博客应包含以下部分&#xff1a; 介绍 - 为什么需要获取设备信息前提条件和安装依赖…...

python-leetcode-解决智力问题

2140. 解决智力问题 - 力扣&#xff08;LeetCode&#xff09; 这道题是一个典型的 动态规划&#xff08;Dynamic Programming, DP&#xff09; 问题&#xff0c;可以使用 自底向上 的方式解决。 思路 定义状态&#xff1a; 设 dp[i] 表示从第 i 题开始&#xff0c;能获得的最高…...

SpireCV荣获Gitee 最有价值开源项目称号

什么是GVP&#xff1f; GVP全称Gitee Valuable Project&#xff0c;意思为Gitee最有价值开源项目。作为GVP称号的获得者&#xff0c;SpireCV在开源社区中展现出了卓越的实力和影响力&#xff0c;为开源软件的发展和推广做出了积极的贡献。 这一荣誉不仅充分肯定了过去阿木实验…...

数据结构基础(一)

文章目录 1 数据结构基础1.1 什么是程序&#xff1f;1.2 数据、数据元素、数据项、数据对象1.3 基本的逻辑结构 2 算法效率2.1 时间复杂度2.1.1 循环执行次数2.1.2 大O(n)表示法 2.2 空间复杂度 1 数据结构基础 1.1 什么是程序&#xff1f; ​ 程序 数据结构 &#xff0b; 算…...

⭐算法OJ⭐N-皇后问题 II【回溯剪枝】(C++实现)N-Queens II

⭐算法OJ⭐N-皇后问题【回溯剪枝】&#xff08;C实现&#xff09;N-Queens 问题描述 The n-queens puzzle is the problem of placing n n n queens on an n n n \times n nn chessboard such that no two queens attack each other. Given an integer n, return the num…...

项目管理工具 Maven

目录 1.Maven的概念 1.1​​​​​什么是Maven 1.2什么是依赖管理 1.3什么是项目构建 1.4Maven的应用场景 1.5为什么使用Maven 1.6Maven模型 2.初识Maven 2.1Maven安装 2.1.1安装准备 2.1.2Maven安装目录分析 2.1.3Maven的环境变量 2.2Maven的第一个项目 2.2.1按照约…...

国产编辑器EverEdit - 宏功能介绍

1 宏 1.1 应用场景 宏是一种重复执行简单工作的利器&#xff0c;可以让用户愉快的从繁琐的工作中解放出来&#xff0c;其本质是对键盘和菜单的操作序列的录制&#xff0c;并不会识别文件的内容&#xff0c;属于无差别无脑执行。 特别是对一些有规律的重复按键动作&#xff0c;…...

CODEGEN:一种基于多轮对话的大型语言模型编程合成方法

【摘要】 该论文于ICLR 2023会议上发表,标题为“CODEGEN:用于编程的大型语言模型”,由Salesforce Research团队撰写。论文提出的CODEGEN是一个大型语言模型系列,旨在通过自然语言和编程语言数据进行训练,以实现程序合成。以下是论文的主要贡献和关键发现的总结: 核心贡献…...

利用后缀表达式构造表达式二叉树的方法

后缀表达式&#xff08;逆波兰表达式&#xff09;是一种将运算符放在操作数之后的表达式表示法。利用后缀表达式构造表达式二叉树的方法主要依赖于栈结构。 转换步骤 初始化 创建一个空栈。 遍历后缀表达式 对后缀表达式的每个符号依次处理&#xff1a; 遇到操作数 如果当前符…...

深度学习笔记——基础部分

深度学习是一种机器学习的方式&#xff0c;通过模仿人脑吃力信息的方式&#xff0c;使用多层神经网络来学习数据的复杂模式和特征。 深度学习和机器学习的区别&#xff1a; 在机器学习中&#xff0c;特征提取通常需要人工设计和选择&#xff0c;依赖于领域专家的知识来确定哪些…...

“双碳”背景下,企业应该如何提升能源效率?

在当今竞争激烈的市场环境中&#xff0c;企业不仅需要优化成本&#xff0c;还需积极响应国家的能源政策&#xff0c;减少对环境的影响。提升工业能源效率正是实现这一双重目标的关键。中国近年来大力推进“双碳”目标&#xff08;碳达峰、碳中和&#xff09;&#xff0c;并出台…...

BambuStudio学习笔记:MarchingSquares类

# Marching Squares算法头文件分析## 文件结构概览 cpp #ifndef MARCHINGSQUARES_HPP #define MARCHINGSQUARES_HPP // 包含标准库头文件 // 命名空间定义 namespace marchsq {// 基础数据结构struct Coord;using Ring std::vector<Coord>;// 栅格适配器模板template<…...