Parquet

数据仓库 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
  • Parquet
本页目录
  • 导入方式
  • 支持的 JSON 格式
  • 以 Array 表示的多行数据
  • 以 Object 表示的单行数据
  • 以固定分隔符分隔的多行 Object 数据
  • 参数配置
  • 参数支持情况
  • 参数说明
  • JSON Path
  • JSON Root
  • Strip Outer Array
  • Read JSON By Line
  • Fuzzy Parse
  • Num As String
  • JSON Path 和 Columns 的关系
  • 使用示例
  • 仅使用 JSON Path
  • 使用 JSON Path + Columns
  • 字段重复使用
  • 嵌套字段映射
  • 使用示例
  • Stream Load 导入
  • Broker Load 导入
  • Routine Load 导入
  • TVF 导入

Parquet

更新时间:2025-08-21

本文介绍如何在 PALO 中导入 JSON 格式的数据文件。PALO 支持导入标准 JSON 格式数据,通过配置相关参数,可以灵活地处理不同的 JSON 数据结构,并支持从 JSON 数据中抽取字段、处理嵌套结构等场景。

导入方式

以下导入方式支持 JSON 格式的数据导入:

  • Stream Load
  • Broker Load
  • Routine Load
  • INSERT INTO FROM S3 TVF
  • INSERT INTO FROM HDFS TVF

支持的 JSON 格式

PALO 支持以下三种 JSON 格式:

以 Array 表示的多行数据

适用于批量导入多行数据,要求:

  • 根节点必须是数组
  • 数组中每个元素是一个对象,表示一行数据
  • 必须设置 strip_outer_array=true

示例数据:

JSON
1[
2    {"id": 123, "city": "beijing"},
3    {"id": 456, "city": "shanghai"}
4]
5
6// 支持嵌套结构
7[
8    {"id": 123, "city": {"name": "beijing", "region": "haidian"}},
9    {"id": 456, "city": {"name": "beijing", "region": "chaoyang"}}
10]

以 Object 表示的单行数据

适用于单行数据导入,要求:

  • 根节点必须是对象
  • 整个对象表示一行数据

示例数据:

JSON
1{"id": 123, "city": "beijing"}
2
3// 支持嵌套结构
4{"id": 123, "city": {"name": "beijing", "region": "haidian"}}

注意: 通常用于 Routine Load 导入方式,如 Kafka 中的单条消息。

以固定分隔符分隔的多行 Object 数据

适用于批量导入多行数据,要求:

  • 每行是一个完整的 JSON 对象
  • 必须设置 read_json_by_line=true
  • 可通过 line_delimiter 参数指定行分隔符,默认为 \n

示例数据:

JSON
1{"id": 123, "city": "beijing"}
2{"id": 456, "city": "shanghai"}

参数配置

参数支持情况

下表列出了各种导入方式支持的 JSON 格式参数:

参数 默认值 Stream Load Broker Load Routine Load TVF
json paths 无 jsonpaths properties.jsonpaths properties.jsonpaths jsonpaths
json root 无 json_root properties.json_root properties.json_root json_root
strip outer array false strip_outer_array properties.strip_outer_array properties.strip_outer_array strip_outer_array
read json by line false read_json_by_line 不支持配置,都为 true 不支持 read_json_by_line, 默认为 true
fuzzy parse false fuzzy_parse properties.fuzzy_parse 不支持 fuzzy_parse
num as string false num_as_string properties.num_as_string properties.num_as_string num_as_string
压缩格式 plain 不支持 PROPERTIES.compress_type 不支持 compress_type

注意:

  1. Stream Load:参数直接通过 HTTP Header 指定,如:-H "jsonpaths: $.data"
  2. Broker Load:参数通过 PROPERTIES 指定,如:PROPERTIES("jsonpaths"="$.data")
  3. Routine Load:参数通过 PROPERTIES 指定,如:PROPERTIES("jsonpaths"="$.data")
  4. TVF:参数通过 TVF 语句指定,如:S3("jsonpaths"="$.data")
  5. 如果需要将 JSON 文件中根节点的 JSON 对象导入,jsonpaths 需要指定为$.,如:PROPERTIES("jsonpaths"="$.")

参数说明

JSON Path

  • 作用:指定如何从 JSON 数据中抽取字段
  • 类型:字符串数组
  • 默认值:无,默认使用列名匹配
  • 使用示例:

    JSON
    1-- 基本用法
    2["$.id", "$.city"]
    3
    4-- 嵌套结构
    5["$.id", "$.info.city", "$.data[0].name"]

JSON Root

  • 作用:指定 JSON 数据的解析起点
  • 类型:字符串
  • 默认值:无,默认从根节点开始解析
  • 使用示例:

    JSON
    1-- 原始数据
    2{
    3  "data": {
    4    "id": 123,
    5    "city": "beijing"
    6  }
    7}
    8
    9-- 设置 json_root
    10json_root = $.data

Strip Outer Array

  • 作用:指定是否去除最外层的数组结构
  • 类型:布尔值
  • 默认值:false
  • 使用示例:

    JSON
    1-- 原始数据
    2[
    3  {"id": 1, "city": "beijing"},
    4  {"id": 2, "city": "shanghai"}
    5]
    6
    7-- 设置 strip_outer_array=true

Read JSON By Line

  • 作用:指定是否按行读取 JSON 数据
  • 类型:布尔值
  • 默认值:false
  • 使用示例:

    JSON
    1-- 原始数据(每行一个完整的 JSON 对象)
    2{"id": 1, "city": "beijing"}
    3{"id": 2, "city": "shanghai"}
    4
    5-- 设置 read_json_by_line=true

Fuzzy Parse

  • 作用:加速 JSON 数据的导入效率
  • 类型:布尔值
  • 默认值:false
  • 限制:

    • Array 中每行数据的字段顺序必须完全一致
    • 通常与 strip_outer_array 配合使用
  • 性能:可提升 3-5 倍导入效率

Num As String

  • 作用:指定是否将 JSON 中的数值类型以字符串形式解析
  • 类型:布尔值
  • 默认值:false
  • 使用场景:

    • 处理超出数值范围的大数
    • 避免数值精度损失
  • 使用示例:

    JSON
    1-- 原始数据
    2{
    3  "id": "12345678901234567890",
    4  "price": "99999999.999999"
    5}
    6-- 设置 num_as_string=true,price 字段将以字符串形式解析

JSON Path 和 Columns 的关系

在数据导入过程中,JSON Path 和 Columns 各自承担不同的职责:

JSON Path:定义数据抽取规则

  • 从 JSON 数据中按指定路径抽取字段
  • 抽取的字段按 JSON Path 中定义的顺序进行重排列

Columns:定义数据映射规则

  • 将抽取的字段映射到目标表的列
  • 可以进行列的重排和转换

这两个参数的处理过程是串行的:首先 JSON Path 从源数据中抽取字段并形成有序的数据集,然后 Columns 将这些数据映射到表的列中。如果不指定 Columns,抽取的字段将按照表的列顺序直接映射。

使用示例

仅使用 JSON Path

表结构和数据:

SQL
1-- 表结构
2CREATE TABLE example_table (
3    k2 int,
4    k1 int
5);
6
7-- JSON 数据
8{"k1": 1, "k2": 2}

导入命令:

Shell
1curl -v ... -H "format: json" \
2    -H "jsonpaths: [\"$.k2\", \"$.k1\"]" \
3    -T example.json \
4    http://<fe_host>:<fe_http_port>/api/db_name/table_name/_stream_load

导入结果:

Text
1+------+------+
2| k1   | k2   |
3+------+------+
4|    2 |    1 | 
5+------+------+
使用 JSON Path + Columns

使用相同的表结构和数据,添加 columns 参数:

导入命令:

Shell
1curl -v ... -H "format: json" \
2    -H "jsonpaths: [\"$.k2\", \"$.k1\"]" \
3    -H "columns: k2, k1" \
4    -T example.json \
5    http://<fe_host>:<fe_http_port>/api/db_name/table_name/_stream_load

导入结果:

Text
1+------+------+
2| k1   | k2   |
3+------+------+
4|    1 |    2 | 
5+------+------+
字段重复使用

表结构和数据:

SQL
1-- 表结构
2CREATE TABLE example_table (
3    k2 int,
4    k1 int,
5    k1_copy int
6);
7
8-- JSON 数据
9{"k1": 1, "k2": 2}

导入命令:

Shell
1curl -v ... -H "format: json" \
2    -H "jsonpaths: [\"$.k2\", \"$.k1\", \"$.k1\"]" \
3    -H "columns: k2, k1, k1_copy" \
4    -T example.json \
5    http://<fe_host>:<fe_http_port>/api/db_name/table_name/_stream_load

导入结果:

Text
1+------+------+---------+
2| k2   | k1   | k1_copy |
3+------+------+---------+
4|    2 |    1 |       1 |
5+------+------+---------+
嵌套字段映射

表结构和数据:

SQL
1-- 表结构
2CREATE TABLE example_table (
3    k2 int,
4    k1 int,
5    k1_nested1 int,
6    k1_nested2 int
7);
8
9-- JSON 数据
10{
11    "k1": 1,
12    "k2": 2,
13    "k3": {
14        "k1": 31,
15        "k1_nested": {
16            "k1": 32
17        }
18    }
19}

导入命令:

Shell
1curl -v ... -H "format: json" \
2    -H "jsonpaths: [\"$.k2\", \"$.k1\", \"$.k3.k1\", \"$.k3.k1_nested.k1\"]" \
3    -H "columns: k2, k1, k1_nested1, k1_nested2" \
4    -T example.json \
5    http://<fe_host>:<fe_http_port>/api/db_name/table_name/_stream_load

导入结果:

Text
1+------+------+------------+------------+
2| k2   | k1   | k1_nested1 | k1_nested2 |
3+------+------+------------+------------+
4|    2 |    1 |         31 |         32 |
5+------+------+------------+------------+

使用示例

本节展示了不同导入方式下的 JSON 格式使用方法。

Stream Load 导入

Bash
1# 使用 JSON Path
2curl --location-trusted -u <user>:<passwd> \
3    -H "format: json" \
4    -H "jsonpaths: [\"$.id\", \"$.city\"]" \
5    -T example.json \
6    http://<fe_host>:<fe_http_port>/api/example_db/example_table/_stream_load
7
8# 指定 JSON root
9curl --location-trusted -u <user>:<passwd> \
10    -H "format: json" \
11    -H "json_root: $.events" \
12    -T example.json \
13    http://<fe_host>:<fe_http_port>/api/example_db/example_table/_stream_load
14
15# 按行读取 JSON
16curl --location-trusted -u <user>:<passwd> \
17    -H "format: json" \
18    -H "read_json_by_line: true" \
19    -T example.json \
20    http://<fe_host>:<fe_http_port>/api/example_db/example_table/_stream_load

Broker Load 导入

SQL
1-- 使用 JSON Path
2LOAD LABEL example_db.example_label
3(
4    DATA INFILE("s3://bucket/path/example.json")
5    INTO TABLE example_table
6    FORMAT AS "json"
7    PROPERTIES
8    (
9        "jsonpaths" = "[\"$.id\", \"$.city\"]"
10    )
11)
12WITH S3 
13(
14    ...
15);
16
17-- 指定 JSON root
18LOAD LABEL example_db.example_label
19(
20    DATA INFILE("s3://bucket/path/example.json")
21    INTO TABLE example_table
22    FORMAT AS "json"
23    PROPERTIES
24    (
25        "json_root" = "$.events"
26    )
27)
28WITH S3 
29(
30    ...
31);

Routine Load 导入

SQL
1-- 使用 JSON Path
2CREATE ROUTINE LOAD example_db.example_job ON example_table
3PROPERTIES
4(
5    "format" = "json",
6    "jsonpaths" = "[\"$.id\", \"$.city\"]"
7)
8FROM KAFKA
9(
10    ...
11);

TVF 导入

SQL
1-- 使用 JSON Path
2INSERT INTO example_table
3SELECT *
4FROM S3
5(
6    "uri" = "s3://bucket/example.json",
7    "format" = "json",
8    "jsonpaths" = "[\"$.id\", \"$.city\"]",
9    ...
10);
11
12-- 指定 JSON root 
13INSERT INTO example_table
14SELECT *
15FROM S3
16(
17    "uri" = "s3://bucket/example.json",
18    "format" = "json",
19    "json_root" = "$.events",
20    ...
21);

上一篇
JSON
下一篇
ORC