MySQL

数据仓库 PALO

  • 功能发布记录
  • 操作手册1
    • LDAP认证
    • 时区
    • 使用S3-SDK访问对象存储
    • 权限管理
    • 物化视图
    • 变量
    • 资源管理
    • 数据更新与删除
      • 标记删除
      • Sequence-Column
      • 数据更新
      • 数据删除
    • 备份与恢复
      • 备份与恢复
    • 数据导出1
      • SELECT INTO OUTFILE
      • MySQL Dump
      • 数据导出概述
      • Export
    • 数据导出
      • 全量数据导出
      • 导出查询结果集
      • 导出总览
      • 导出数据到外部表
    • 查询加速1
      • 查询缓存
      • 物化视图
        • 同步物化视图
        • 物化视图概览
        • 异步物化视图
          • 异步物化视图常见问题
          • 最佳实践
          • 异步物化视图概述
          • 创建、查询与维护异步物化视图
    • 数据导入
      • JSON格式数据导入说明
      • 导入本地数据
      • 导入BOS中的数据
      • 导入事务和原子性
      • 通过外部表同步数据
      • 使用JDBC同步数据
      • 列的映射、转换与过滤
      • 订阅Kafka日志
      • 严格模式
      • 导入总览
    • 数据更新与删除1
      • 事务
      • 数据更新
        • 主键模型的导入更新
        • 主键模型的 Update 更新
        • 数据更新概述
        • 主键模型的更新并发控制
        • 聚合模型的导入更新
      • 数据删除
        • 删除操作概述
        • Truncate 操作
        • 表原子替换
        • Delete 操作
        • 基于导入的批量删除
        • 临时分区
    • 数据导入1
      • 高并发导入优化(Group Commit)
      • 导入概览
      • 异常数据处理
      • 导入高可用性
      • 导入时实现数据转换
      • 数据源
        • Kafka
        • S3 兼容存储
        • 从其他 TP 系统迁移数据
        • HDFS
        • 从其他 AP 系统迁移数据
        • Flink
        • 本地文件
      • 导入方式
        • Broker Load
        • MySQL Load
        • Insert Into Values
        • Stream Load
        • Insert Into Select
        • Routine Load
      • 文件格式
        • CSV
        • JSON
        • Parquet
        • ORC
      • 复杂数据类型
        • MAP
        • Variant
        • JSON
        • STRUCT
        • Bitmap
        • HLL
        • ARRAY
  • 开发指南
    • 迁移ClickHouse数据
    • Doris集群间数据迁移
    • 数据更新与删除
      • 事务
      • 数据更新
        • 主键模型的导入更新
        • 主键模型的 Update 更新
        • 数据更新概述
        • 主键模型的更新并发控制
        • 聚合模型的导入更新
      • 数据删除
        • 删除操作概述
        • Truncate 操作
        • 表原子替换
        • Delete 操作
        • 基于导入的批量删除
        • 临时分区
    • 查询加速
      • 查询缓存
      • Colocation Join
      • 高并发点查
      • Hint
        • Hint 概述
        • Leading Hint
        • Distribute Hint
      • 物化视图
        • 同步物化视图
        • 物化视图概览
        • 异步物化视图
          • 异步物化视图常见问题
          • 最佳实践
          • 异步物化视图概述
          • 创建、查询与维护异步物化视图
      • 高效去重
        • BITMAP 精准去重
        • HLL 近似去重
      • 优化技术原理
        • TOPN 查询优化
        • 统计信息
        • Pipeline 执行引擎
        • 查询优化器介绍
        • Runtime Filter
      • 查询调优概述
        • 调优概述
        • 诊断工具
        • 分析工具
        • 调优流程
      • 查询优化实践
        • 常见调优参数
        • 计划调优
          • 使用 Hint 控制代价改写
          • 使用异步物化视图透明改写
          • 使用 Leading Hint 控制 Join 顺序
          • 优化表 Schema 设计
          • 使用分区裁剪优化扫表
          • 优化索引设计和使用
          • 使用 Hint 调整 Join Shuffle 方式
          • DML 计划调优
          • 使用 Colocate Group 优化 Join
          • 使用同步物化视图透明改写
          • 使用 SQL Cache 加速查询
        • 执行调优
          • 数据倾斜处理
          • RuntimeFilter 的等待时间调整
          • 并行度调优
    • 数据查询
      • 连接(JOIN)
      • 子查询
      • 复杂类型查询
      • 列转行 (Lateral View)
      • MySQL 兼容性
      • 聚合多维分析
      • 分析函数(窗口函数)
      • 公用表表达式(CTE)
      • 自定义函数
        • 别名函数
        • Java UDF, UDAF, UDTF
    • 数据导出
      • SELECT INTO OUTFILE
      • MySQL Dump
      • 最佳实践
      • 数据导出概述
      • Export
    • 数据导入
      • 高并发导入优化(Group Commit)
      • 异常数据处理
      • 导入高可用性
      • 导入时实现数据转换
      • 导入最佳实践
      • 数据源
        • Kafka
        • Snowflake
        • S3 兼容存储
        • Google Cloud Storage
        • 从其他 TP 系统迁移数据
        • Azure Storage
        • 腾讯云 COS
        • MinIO
        • HDFS
        • 阿里云 OSS
        • 华为云 OBS
        • 从其他 AP 系统迁移数据
        • Flink
        • Redshift
        • Amazon S3
        • 本地文件
        • BigQuery
      • 导入方式
        • Broker Load
        • MySQL Load
        • Insert Into Values
        • Stream Load
        • Insert Into Select
        • Routine Load
      • 文件格式
        • CSV
        • JSON
        • Parquet
        • ORC
      • 复杂数据类型
        • MAP
        • Variant
        • JSON
        • STRUCT
        • Bitmap
        • HLL
        • ARRAY
    • BI工具接入
      • Sugar
      • Navicat
      • Tableau
      • DBeaver
      • 永洪BI
      • FineBI(帆软)
    • 数据库连接
      • 通过 MySQL 协议连接
      • 基于 Arrow Flight SQL 的高速数据传输链路
    • 湖仓一体
      • 分析 S3或HDFS 上的文件
      • 湖仓一体概述
      • SQL 方言兼容
      • 弹性计算节点
      • 云服务认证接入
      • 元数据缓存
      • 外表统计信息
      • 数据缓存
      • 数据库分析
        • MySQL
        • JDBC Catalog
        • Oracle
        • OceanBase
        • SAP HANA
        • 阿里云 MaxCompute
        • ClickHouse
        • PostgreSQL
        • IBM Db2
        • SQL Server
        • Elasticsearch
      • 湖仓一体最佳实践
        • 使用 PALO 和 Paimon
        • 使用 PALO 和 Iceberg
        • 使用 PALO 和 Hudi
        • 使用 PALO 和 LakeSoul
      • 数据湖构建
        • Iceberg
        • Hive
      • 数据湖分析
        • Hudi Catalog
        • 阿里云 DLF
        • Iceberg Catalog
        • Paimon Catalog
        • Hive Catalog
    • 数据表设计
      • 行业混存
      • 数据压缩
      • Schema 变更
      • 数据类型
      • 自增列
      • 概览
      • 数据库建表最佳实践
      • 冷热数据分层
        • SSD 和 HDD 层级存储
        • 远程存储
        • 冷热数据分层概述
      • 表索引
        • 倒排索引
        • 前缀索引与排序键
        • N-Gram 索引
        • BloomFilter 索引
        • 索引概述
      • 数据划分
        • 数据分桶
        • 数据分布概念
        • 动态分区
        • 自动分区
        • 手动分区
        • 常见文档
      • 数据模型
        • 使用注意
        • 模型概述
        • 主键模型
        • 明细模型
        • 聚合模型
  • 版本发布历史
    • 百度数据仓库 Palo 2.0 版本全新发布
  • SQL手册
    • 字面常量
    • 别名
    • SQL-手册
    • 数据类型
    • SQL语句
    • 注释
    • 内置函数
    • 白名单管理
    • SQL操作符
    • 内置函数
      • 聚合函数
      • 位操作函数
      • 字符串函数
      • 条件函数
      • 数学函数
      • JSON解析函数
      • 类型转换函数
      • 格式转换函数
      • 通用函数
      • 时间和日期函数
      • BITMAP函数
      • 窗口函数
      • 哈希函数
      • HLL函数
    • 语法帮助
      • DML
        • INSERT
        • ROUTINE-LOAD
        • RESTORE
        • SELECT-INTO-OUTFILE
        • ALTER-ROUTINE-LOAD
        • BROKER-LOAD
        • BACKUP
        • EXPORT
        • STREAM-LOAD
      • DDL
        • CREATE-FILE
        • DROP-RESOURCE
        • CREATE-RESOURCE
        • CREATE-MATERIALIZED-VIEW
        • DROP-RESROUCE
        • CREATE-TABLE
        • DROP-REPOSITORY
        • CREATE-REPOSITORY
        • CREATE-ODBC-TABLE
      • 信息查看语句
        • SHOW-BACKUP
        • SHOW-ALTER-TABLE-MATERIALIZED-VIEW
        • SHOW-SNAPSHOT
        • SHOW-ROUTINE-LOAD
        • SHOW-CREATE-ROUTINE-LOAD
        • SHOW-ROLES
        • SHOW-GRANTS
        • SHOW-EXPORT
        • SHOW-ROUTINE-LOAD-TASK
        • SHOW-REPOSITORIES
        • SHOW-LOAD
        • SHOW-RESOURCES
        • SHOW-RESTORE
        • SHOW-PROPERTY
        • SHOW-FILE
      • 辅助命令
        • PAUSE-ROUTINE-LOAD
        • STOP-ROUTINE-LOAD
        • ALTER-ROUTINE-LOAD
        • CANCEL-LOAD
        • RESUME-ROUTINE-LOAD
      • 账户管理
        • SET-PROPERTY
        • REVOKE
        • GRANT
        • CREATE-ROLE
        • DROP-ROLE
        • CREATE-USER
        • DROP-USER
        • SET-PASSWORD
  • 快速入门
    • 快速上手
    • 存算分离
    • 存算一体
  • 典型实践
    • 如何开启Debug日志
    • 导入分析
    • 查询分析
  • 操作手册
    • 权限和子用户
    • 存算一体
      • 连接集群
      • 查询分析
      • 监控告警
        • 监控指标
        • 告警配置
      • 备份恢复
        • 通过管理页面备份与恢复
        • 备份与恢复
      • 权限管理
        • 集群权限
        • 控制台权限
      • 集群管理
        • 集群创建
        • 停止与删除
        • 重置管理员密码
        • 集群扩缩容
        • 集群详情
    • 存算分离
      • 连接集群
      • 计算组管理
        • 重启计算组
        • 创建计算组
      • 监控告警
        • 监控指标
        • 告警配置
      • 权限管理
        • 集群权限
        • 控制台权限
      • 集群管理
        • 停止与删除
        • 创建集群
        • 重置管理员密码
        • 集群详情
  • 服务等级协议SLA
    • 服务等级协议(SLA)v1.0
  • 产品概述
    • 系统架构
    • 产品特点
    • 产品介绍
  • 视频专区
    • 操作指南
    • 产品简介
  • 产品定价
    • 预付费
    • 计费说明
    • 后付费
所有文档
menu
没有找到结果,请重新输入

数据仓库 PALO

  • 功能发布记录
  • 操作手册1
    • LDAP认证
    • 时区
    • 使用S3-SDK访问对象存储
    • 权限管理
    • 物化视图
    • 变量
    • 资源管理
    • 数据更新与删除
      • 标记删除
      • Sequence-Column
      • 数据更新
      • 数据删除
    • 备份与恢复
      • 备份与恢复
    • 数据导出1
      • SELECT INTO OUTFILE
      • MySQL Dump
      • 数据导出概述
      • Export
    • 数据导出
      • 全量数据导出
      • 导出查询结果集
      • 导出总览
      • 导出数据到外部表
    • 查询加速1
      • 查询缓存
      • 物化视图
        • 同步物化视图
        • 物化视图概览
        • 异步物化视图
          • 异步物化视图常见问题
          • 最佳实践
          • 异步物化视图概述
          • 创建、查询与维护异步物化视图
    • 数据导入
      • JSON格式数据导入说明
      • 导入本地数据
      • 导入BOS中的数据
      • 导入事务和原子性
      • 通过外部表同步数据
      • 使用JDBC同步数据
      • 列的映射、转换与过滤
      • 订阅Kafka日志
      • 严格模式
      • 导入总览
    • 数据更新与删除1
      • 事务
      • 数据更新
        • 主键模型的导入更新
        • 主键模型的 Update 更新
        • 数据更新概述
        • 主键模型的更新并发控制
        • 聚合模型的导入更新
      • 数据删除
        • 删除操作概述
        • Truncate 操作
        • 表原子替换
        • Delete 操作
        • 基于导入的批量删除
        • 临时分区
    • 数据导入1
      • 高并发导入优化(Group Commit)
      • 导入概览
      • 异常数据处理
      • 导入高可用性
      • 导入时实现数据转换
      • 数据源
        • Kafka
        • S3 兼容存储
        • 从其他 TP 系统迁移数据
        • HDFS
        • 从其他 AP 系统迁移数据
        • Flink
        • 本地文件
      • 导入方式
        • Broker Load
        • MySQL Load
        • Insert Into Values
        • Stream Load
        • Insert Into Select
        • Routine Load
      • 文件格式
        • CSV
        • JSON
        • Parquet
        • ORC
      • 复杂数据类型
        • MAP
        • Variant
        • JSON
        • STRUCT
        • Bitmap
        • HLL
        • ARRAY
  • 开发指南
    • 迁移ClickHouse数据
    • Doris集群间数据迁移
    • 数据更新与删除
      • 事务
      • 数据更新
        • 主键模型的导入更新
        • 主键模型的 Update 更新
        • 数据更新概述
        • 主键模型的更新并发控制
        • 聚合模型的导入更新
      • 数据删除
        • 删除操作概述
        • Truncate 操作
        • 表原子替换
        • Delete 操作
        • 基于导入的批量删除
        • 临时分区
    • 查询加速
      • 查询缓存
      • Colocation Join
      • 高并发点查
      • Hint
        • Hint 概述
        • Leading Hint
        • Distribute Hint
      • 物化视图
        • 同步物化视图
        • 物化视图概览
        • 异步物化视图
          • 异步物化视图常见问题
          • 最佳实践
          • 异步物化视图概述
          • 创建、查询与维护异步物化视图
      • 高效去重
        • BITMAP 精准去重
        • HLL 近似去重
      • 优化技术原理
        • TOPN 查询优化
        • 统计信息
        • Pipeline 执行引擎
        • 查询优化器介绍
        • Runtime Filter
      • 查询调优概述
        • 调优概述
        • 诊断工具
        • 分析工具
        • 调优流程
      • 查询优化实践
        • 常见调优参数
        • 计划调优
          • 使用 Hint 控制代价改写
          • 使用异步物化视图透明改写
          • 使用 Leading Hint 控制 Join 顺序
          • 优化表 Schema 设计
          • 使用分区裁剪优化扫表
          • 优化索引设计和使用
          • 使用 Hint 调整 Join Shuffle 方式
          • DML 计划调优
          • 使用 Colocate Group 优化 Join
          • 使用同步物化视图透明改写
          • 使用 SQL Cache 加速查询
        • 执行调优
          • 数据倾斜处理
          • RuntimeFilter 的等待时间调整
          • 并行度调优
    • 数据查询
      • 连接(JOIN)
      • 子查询
      • 复杂类型查询
      • 列转行 (Lateral View)
      • MySQL 兼容性
      • 聚合多维分析
      • 分析函数(窗口函数)
      • 公用表表达式(CTE)
      • 自定义函数
        • 别名函数
        • Java UDF, UDAF, UDTF
    • 数据导出
      • SELECT INTO OUTFILE
      • MySQL Dump
      • 最佳实践
      • 数据导出概述
      • Export
    • 数据导入
      • 高并发导入优化(Group Commit)
      • 异常数据处理
      • 导入高可用性
      • 导入时实现数据转换
      • 导入最佳实践
      • 数据源
        • Kafka
        • Snowflake
        • S3 兼容存储
        • Google Cloud Storage
        • 从其他 TP 系统迁移数据
        • Azure Storage
        • 腾讯云 COS
        • MinIO
        • HDFS
        • 阿里云 OSS
        • 华为云 OBS
        • 从其他 AP 系统迁移数据
        • Flink
        • Redshift
        • Amazon S3
        • 本地文件
        • BigQuery
      • 导入方式
        • Broker Load
        • MySQL Load
        • Insert Into Values
        • Stream Load
        • Insert Into Select
        • Routine Load
      • 文件格式
        • CSV
        • JSON
        • Parquet
        • ORC
      • 复杂数据类型
        • MAP
        • Variant
        • JSON
        • STRUCT
        • Bitmap
        • HLL
        • ARRAY
    • BI工具接入
      • Sugar
      • Navicat
      • Tableau
      • DBeaver
      • 永洪BI
      • FineBI(帆软)
    • 数据库连接
      • 通过 MySQL 协议连接
      • 基于 Arrow Flight SQL 的高速数据传输链路
    • 湖仓一体
      • 分析 S3或HDFS 上的文件
      • 湖仓一体概述
      • SQL 方言兼容
      • 弹性计算节点
      • 云服务认证接入
      • 元数据缓存
      • 外表统计信息
      • 数据缓存
      • 数据库分析
        • MySQL
        • JDBC Catalog
        • Oracle
        • OceanBase
        • SAP HANA
        • 阿里云 MaxCompute
        • ClickHouse
        • PostgreSQL
        • IBM Db2
        • SQL Server
        • Elasticsearch
      • 湖仓一体最佳实践
        • 使用 PALO 和 Paimon
        • 使用 PALO 和 Iceberg
        • 使用 PALO 和 Hudi
        • 使用 PALO 和 LakeSoul
      • 数据湖构建
        • Iceberg
        • Hive
      • 数据湖分析
        • Hudi Catalog
        • 阿里云 DLF
        • Iceberg Catalog
        • Paimon Catalog
        • Hive Catalog
    • 数据表设计
      • 行业混存
      • 数据压缩
      • Schema 变更
      • 数据类型
      • 自增列
      • 概览
      • 数据库建表最佳实践
      • 冷热数据分层
        • SSD 和 HDD 层级存储
        • 远程存储
        • 冷热数据分层概述
      • 表索引
        • 倒排索引
        • 前缀索引与排序键
        • N-Gram 索引
        • BloomFilter 索引
        • 索引概述
      • 数据划分
        • 数据分桶
        • 数据分布概念
        • 动态分区
        • 自动分区
        • 手动分区
        • 常见文档
      • 数据模型
        • 使用注意
        • 模型概述
        • 主键模型
        • 明细模型
        • 聚合模型
  • 版本发布历史
    • 百度数据仓库 Palo 2.0 版本全新发布
  • SQL手册
    • 字面常量
    • 别名
    • SQL-手册
    • 数据类型
    • SQL语句
    • 注释
    • 内置函数
    • 白名单管理
    • SQL操作符
    • 内置函数
      • 聚合函数
      • 位操作函数
      • 字符串函数
      • 条件函数
      • 数学函数
      • JSON解析函数
      • 类型转换函数
      • 格式转换函数
      • 通用函数
      • 时间和日期函数
      • BITMAP函数
      • 窗口函数
      • 哈希函数
      • HLL函数
    • 语法帮助
      • DML
        • INSERT
        • ROUTINE-LOAD
        • RESTORE
        • SELECT-INTO-OUTFILE
        • ALTER-ROUTINE-LOAD
        • BROKER-LOAD
        • BACKUP
        • EXPORT
        • STREAM-LOAD
      • DDL
        • CREATE-FILE
        • DROP-RESOURCE
        • CREATE-RESOURCE
        • CREATE-MATERIALIZED-VIEW
        • DROP-RESROUCE
        • CREATE-TABLE
        • DROP-REPOSITORY
        • CREATE-REPOSITORY
        • CREATE-ODBC-TABLE
      • 信息查看语句
        • SHOW-BACKUP
        • SHOW-ALTER-TABLE-MATERIALIZED-VIEW
        • SHOW-SNAPSHOT
        • SHOW-ROUTINE-LOAD
        • SHOW-CREATE-ROUTINE-LOAD
        • SHOW-ROLES
        • SHOW-GRANTS
        • SHOW-EXPORT
        • SHOW-ROUTINE-LOAD-TASK
        • SHOW-REPOSITORIES
        • SHOW-LOAD
        • SHOW-RESOURCES
        • SHOW-RESTORE
        • SHOW-PROPERTY
        • SHOW-FILE
      • 辅助命令
        • PAUSE-ROUTINE-LOAD
        • STOP-ROUTINE-LOAD
        • ALTER-ROUTINE-LOAD
        • CANCEL-LOAD
        • RESUME-ROUTINE-LOAD
      • 账户管理
        • SET-PROPERTY
        • REVOKE
        • GRANT
        • CREATE-ROLE
        • DROP-ROLE
        • CREATE-USER
        • DROP-USER
        • SET-PASSWORD
  • 快速入门
    • 快速上手
    • 存算分离
    • 存算一体
  • 典型实践
    • 如何开启Debug日志
    • 导入分析
    • 查询分析
  • 操作手册
    • 权限和子用户
    • 存算一体
      • 连接集群
      • 查询分析
      • 监控告警
        • 监控指标
        • 告警配置
      • 备份恢复
        • 通过管理页面备份与恢复
        • 备份与恢复
      • 权限管理
        • 集群权限
        • 控制台权限
      • 集群管理
        • 集群创建
        • 停止与删除
        • 重置管理员密码
        • 集群扩缩容
        • 集群详情
    • 存算分离
      • 连接集群
      • 计算组管理
        • 重启计算组
        • 创建计算组
      • 监控告警
        • 监控指标
        • 告警配置
      • 权限管理
        • 集群权限
        • 控制台权限
      • 集群管理
        • 停止与删除
        • 创建集群
        • 重置管理员密码
        • 集群详情
  • 服务等级协议SLA
    • 服务等级协议(SLA)v1.0
  • 产品概述
    • 系统架构
    • 产品特点
    • 产品介绍
  • 视频专区
    • 操作指南
    • 产品简介
  • 产品定价
    • 预付费
    • 计费说明
    • 后付费
  • 文档中心
  • arrow
  • 数据仓库PALO
  • arrow
  • 开发指南
  • arrow
  • 湖仓一体
  • arrow
  • 数据库分析
  • arrow
  • MySQL
本页目录
  • 使用须知
  • 连接 MySQL
  • 连接安全
  • 层级映射
  • 类型映射
  • MySQL 到 PALO 类型映射
  • 时间戳类型处理
  • 查询优化
  • 谓词下推
  • 行数限制
  • 转义字符
  • 连接异常排查
  • 常见问题

MySQL

更新时间:2025-08-21

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

使用须知

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

  • MySQL 5.7, 8.0 或更高版本
  • MySQL 数据库的 JDBC 驱动程序,您可以从 Maven 仓库下载最新或指定版本的 MySQL JDBC 驱动程序。推荐使用 MySQL Connector/J 8.0.31 及以上版本。
  • PALO 每个 FE 和 BE 节点和 MySQL 服务器之间的网络连接,默认端口为 3306。

连接 MySQL

SQL
1CREATE CATALOG mysql PROPERTIES (
2    "type"="jdbc",
3    "user"="root",
4    "password"="secret",
5    "jdbc_url" = "jdbc:mysql://example.net:3306",
6    "driver_url" = "mysql-connector-j-8.3.0.jar",
7    "driver_class" = "com.mysql.cj.jdbc.Driver"
8)

备注: jdbc_url 定义要传递给 MySQL JDBC 驱动程序的连接信息和参数。

连接安全

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

例如,对于 MySQL Connector/J 8.0 版,使用 sslMode 参数通过 TLS 保护连接。默认情况下,该参数设置为 PREFERRED,如果服务器启用,它可以保护连接。您还可以将此参数设置为 REQUIRED,如果未建立 TLS,则会导致连接失败。

您可以在通过在 jdbc_url 中添加 sslMode 参数来配置它:

SQL
1“jdbc_url”=“jdbc:mysql://example.net:3306/?sslMode=REQUIRED”

层级映射

映射 MySQL 时,PALO 的一个 Database 对应于 MySQL 中的一个 Database。而 PALO 的 Database 下的 Table 则对应于 MySQL 中,该 Database 下的 Tables。即映射关系如下:

PALO MySQL
Catalog MySQL Server
Database Database
Table Table

类型映射

MySQL 到 PALO 类型映射

MYSQL Type PALO Type Comment
BOOLEAN TINYINT
TINYINT TINYINT
SMALLINT SMALLINT
MEDIUMINT INT
INT INT
BIGINT BIGINT
UNSIGNED TINYINT SMALLINT
UNSIGNED MEDIUMINT INT
UNSIGNED INT BIGINT
UNSIGNED BIGINT LARGEINT
FLOAT FLOAT
DOUBLE DOUBLE
DECIMAL DECIMAL
UNSIGNED DECIMAL(p,s) DECIMAL(p+1,s) / STRING
DATE DATE
TIMESTAMP DATETIME
DATETIME DATETIME
YEAR SMALLINT
TIME STRING
CHAR CHAR
VARCHAR VARCHAR
JSON STRING
SET STRING
ENUM STRING
BIT BOOLEAN/STRING
TINYTEXT,TEXT,MEDIUMTEXT,LONGTEXT STRING
BLOB,MEDIUMBLOB,LONGBLOB,TINYBLOB STRING
BINARY,VARBINARY STRING
Other UNSUPPORTED

提示:

  • PALO 不支持 UNSIGNED 数据类型,所以 UNSIGNED 数据类型会被映射为 PALO 对应大一个数量级的数据类型。
  • UNSIGNED DECIMAL(p,s) 会被映射为 DECIMAL(p+1,s) 或 STRING。注意在此类型被映射为 String 时,只能支持查询,不能对 MySQL 进行写入操作。
  • 为了更好的读取与计算性能均衡,PALO 会将 JSON 类型映射为 STRING 类型。
  • PALO 不支持 BIT 类型,BIT 类型会在 BIT(1) 时被映射为 BOOLEAN,其他情况下映射为 STRING。
  • PALO 不支持 YEAR 类型,YEAR 类型会被映射为 SMALLINT。
  • PALO 不支持 TIME 类型,TIME 类型会被映射为 STRING。

时间戳类型处理

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

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

读取 MySQL 的 TIMESTAMP 类型时,请在 JDBC URL 中添加参数:connectionTimeZone=LOCAL 和 forceConnectionTimeZoneToSession=true。这些参数适用于 MySQL Connector/J 8 以上版本,可确保读取的时间为 PALO BE JVM 时区,而非 MySQL session 时区。

查询优化

谓词下推

  1. 当执行类似于 where dt = '2022-01-01' 这样的查询时,PALO 能够将这些过滤条件下推到外部数据源,从而直接在数据源层面排除不符合条件的数据,减少了不必要的数据获取和传输。这大大提高了查询性能,同时也降低了对外部数据源的负载。
  2. 当变量 enable_ext_func_pred_pushdown 设置为 true,会将 where 之后的函数条件也下推到外部数据源,PALO 会自动识别部分 MySQL 不支持的函数,可通过 explain sql 查看。

    当前 PALO 默认不会下推到 MySQL 的函数如下

    Function
    DATE_TRUNC
    MONEY_FORMAT
    NEGATIVE

    当您发现还有其他函数不支持下推时,可以通过 fe.conf 配置 jdbc_mysql_unsupported_pushdown_functions 来指定不支持下推的函数。如:jdbc_mysql_unsupported_pushdown_functions=func1,func2

行数限制

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

转义字符

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

连接异常排查

  • Communications link failure The last packet successfully received from the server was 7 milliseconds ago.

    • 原因:

      • 网络问题:

        • 网络不稳定或连接中断。
        • 客户端和服务器之间的网络延迟过高。
      • MySQL 服务器设置

        • MySQL 服务器可能配置了连接超时参数,例如 wait_timeout 或 interactive_timeout,导致连接超时被关闭。
      • 防火墙设置

        • 防火墙规则可能阻止了客户端与服务器之间的通信。
      • 连接池设置

        • 连接池中的配置 connection_pool_max_life_time 可能导致连接被关闭或回收,或者未及时探活
      • 服务器资源问题

        • MySQL 服务器可能资源不足,无法处理新的连接请求。
      • 客户端配置

        • 客户端 JDBC 驱动配置错误,例如 autoReconnect 参数未设置或设置不当。
    • 解决

      • 检查网络连接:

        • 确认客户端和服务器之间的网络连接稳定,避免网络延迟过高。
      • 检查 MySQL 服务器配置:

        • 查看并调整 MySQL 服务器的 wait_timeout 和 interactive_timeout 参数,确保它们设置合理。
      • 检查防火墙配置:

        • 确认防火墙规则允许客户端与服务器之间的通信。
      • 调整连接池设置:

        • 检查并调整连接池的配置参数 connection_pool_max_life_time,确保小于 MySQL 的 wait_timeout 和 interactive_timeout 参数并大于执行时间最长的 SQL
      • 监控服务器资源:

        • 监控 MySQL 服务器的资源使用情况,确保有足够的资源处理连接请求。
      • 优化客户端配置:

        • 确认 JDBC 驱动的配置参数正确,例如 autoReconnect=true,确保连接能在中断后自动重连。
  • java.io.EOFException MESSAGE: Can not read response from server. Expected to read 819 bytes, read 686 bytes before connection was unexpectedly lost.

    • 原因:连接被 MySQL Kill 或者 MySQL 宕机
    • 解决:检查 MySQL 是否有主动 kill 连接的机制,或者是否因为查询过大查崩 MySQL

常见问题

  1. 读写 MySQL 的 emoji 表情出现乱码

    PALO 进行 MySQL Catalog 查询时,由于 MySQL 之中默认的 utf8 编码为 utf8mb3,无法表示需要 4 字节编码的 emoji 表情。这里需要将 MySQL 的编码修改为 utf8mb4,以支持 4 字节编码。

    可全局修改配置项

    Plain Text
    1修改 mysql 目录下的 my.ini 文件(linux 系统为 etc 目录下的 my.cnf 文件)
    2[client]
    3default-character-set=utf8mb4
    4
    5[mysql]
    6设置 mysql 默认字符集
    7default-character-set=utf8mb4
    8
    9[mysqld]
    10设置 mysql 字符集服务器
    11character-set-server=utf8mb4
    12collation-server=utf8mb4_unicode_ci
    13init_connect='SET NAMES utf8mb4
    14
    15修改对应表与列的类型
    16ALTER TABLE table_name MODIFY  colum_name  VARCHAR(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    17ALTER TABLE table_name CHARSET=utf8mb4;
    18SET NAMES utf8mb4
  2. 读取 MySQL DATE/DATETIME 类型出现异常

    Plain Text
    1ERROR 1105 (HY000): errCode = 2, detailMessage = (10.16.10.6)[INTERNAL_ERROR]UdfRuntimeException: get next block failed: 
    2CAUSED BY: SQLException: Zero date value prohibited
    3CAUSED BY: DataReadException: Zero date value prohibited

    这是因为 JDBC 中对于该非法的 DATE/DATETIME 默认处理为抛出异常,可以通过参数 zeroDateTimeBehavior控制该行为。

    可选参数为:exception,convertToNull,round, 分别为:异常报错,转为 NULL 值,转为 "0001-01-01 00:00:00";

    需要在创建 Catalog 的 jdbc_url 把 JDBC 连接串最后增加 zeroDateTimeBehavior=convertToNull ,如 "jdbc_url" = "jdbc:mysql://127.0.0.1:3306/test?zeroDateTimeBehavior=convertToNull" 这种情况下,JDBC 会把 0000-00-00 或者 0000-00-00 00:00:00 转换成 null,然后 PALO 会把当前 Catalog 的所有 Date/DateTime 类型的列按照可空类型处理,这样就可以正常读取了。

  3. 读取 MySQL Catalog 或其他 JDBC Catalog 时,出现加载类失败

    如以下异常:

    Plain Text
    1failed to load driver class com.mysql.cj.jdbc.driver in either of hikariconfig class loader

    这是因为在创建 Catalog 时,填写的 driver_class 不正确,需要正确填写,如上方例子为大小写问题,应填写为 "driver_class" = "com.mysql.cj.jdbc.Driver"

  4. 读取 MySQL 出现通信链路异常

    如果出现如下报错:

    Plain Text
    1ERROR 1105 (HY000): errCode = 2, detailMessage = PoolInitializationException: Failed to initialize pool: Communications link failure
    2
    3The last packet successfully received from the server was 7 milliseconds ago.  The last packet sent successfully to the server was 4 milliseconds ago.
    4CAUSED BY: CommunicationsException: Communications link failure
    5    
    6The last packet successfully received from the server was 7 milliseconds ago.  The last packet sent successfully to the server was 4 milliseconds ago.
    7CAUSED BY: SSLHandshakeExcepti

    可查看 be 的 be.out 日志

    如果包含以下信息:

    Plain Text
    1WARN: Establishing SSL connection without server's identity verification is not recommended. 
    2According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. 
    3For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. 
    4You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

    可在创建 Catalog 的 jdbc_url 把 JDBC 连接串最后增加 ?useSSL=false ,如 "jdbc_url" = "jdbc:mysql://127.0.0.1:3306/test?useSSL=false"

  5. 查询 MySQL 大数据量时,如果查询偶尔能够成功,偶尔会报如下错误,且出现该错误时 MySQL 的连接被全部断开,无法连接到 MySQL Server,过段时间后 MySQL 又恢复正常,但是之前的连接都没了:

    Plain Text
    1ERROR 1105 (HY000): errCode = 2, detailMessage = [INTERNAL_ERROR]UdfRuntimeException: JDBC executor sql has error:
    2CAUSED BY: CommunicationsException: Communications link failure
    3The last packet successfully received from the server was 4,446 milliseconds ago. The last packet sent successfully to the server was 4,446 milliseconds ago.

    出现上述现象时,可能是 MySQL Server 自身的内存或 CPU 资源被耗尽导致 MySQL 服务不可用,可以尝试增大 MySQL Server 的内存或 CPU 配置。

  6. 查询 MySQL 的过程中,如果发现和在 MySQL 库的查询结果不一致的情况

    首先要先排查下查询字段中是字符串否存在有大小写情况。比如,Table 中有一个字段 c_1 中有 "aaa" 和 "AAA" 两条数据,如果在初始化 MySQL 数据库时未指定区分字符串大小写,那么 MySQL 默认是不区分字符串大小写的,但是在 PALO 中是严格区分大小写的,所以会出现以下情况:

    Plain Text
    1MySQL 行为:
    2select count(c_1) from table where c_1 = "aaa"; 未区分字符串大小,所以结果为:2
    3
    4PALO 行为:
    5select count(c_1) from table where c_1 = "aaa"; 严格区分字符串大小,所以结果为:1

    如果出现上述现象,那么需要按照需求来调整,方式如下:

    在 MySQL 中查询时添加“BINARY”关键字来强制区分大小写:select count(c_1) from table where BINARY c_1 = "aaa";

    或者在 MySQL 中建表时候指定:CREATE TABLE table (c_1 VARCHAR(255) CHARACTER SET binary);

    或者在初始化 MySQL 数据库时指定校对规则来区分大小写:

    Plain Text
    1[mysqld]
    2character-set-server=utf8
    3collation-server=utf8_bin
    4[client]
    5default-character-set=utf8
    6[mysql]
    7default-character-set=utf8
  7. 查询 MySQL 的时候,出现长时间卡住没有返回结果,或着卡住很长时间并且 fe.warn.log 中出现出现大量 write lock 日志,可以尝试在 URL 添加 socketTimeout,例如:jdbc:mysql://host:port/database?socketTimeout=30000,防止 JDBC 客户端 在被 MySQL 关闭连接后无限等待。
  8. 在使用 MySQL Catalog 的过程中发现 FE 的 JVM 内存或 Threads 数持续增长不减少,并可能同时出现 Forward to master connection timed out 报错

    打印 FE 线程堆栈 jstack fe_pid > fe.js,如果出现大量 mysql-cj-abandoned-connection-cleanup 线程,说明是 MySQL JDBC 驱动的问题。

    按照如下方式处理:

    1. 升级 MySQL JDBC 驱动到 8.0.31 及以上版本
    2. 在 FE 和 BE conf 文件的 JAVA_OPTS 中增加 -Dcom.mysql.cj.disableAbandonedConnectionCleanup=true 参数,禁用 MySQL JDBC 驱动的连接清理功能,并重启集群

    注意: 如果 PALO 的版本在 2.0.13 及以上(2.0 Release),或 2.1.5 及以上(2.1 Release)则无需增加该参数,因为 PALO 已经默认禁用了 MySQL JDBC 驱动的连接清理功能。只需更换 MySQL JDBC 驱动版本即可。但是需要重启 PALO 集群来清理掉之前的 Threads。

上一篇
数据缓存
下一篇
JDBC Catalog