花开不停 花开不停
首页
  • 追忆杂谈
  • 书信往来
  • 旅行记录
  • 文定之喜
  • 黄金屋-颜如玉
  • 程序化广告
  • 禅茶一味
  • 随写编年
  • 家人物语
  • 追忆青春
  • 大千世界
  • Shell
  • Java
  • Spark
  • Hadoop
  • ClickHouse
  • MySQL
  • PostgreSQL
  • MongoDB
  • 调度器
  • Zookeeper
  • Kafka
  • Flume
  • 学习周刊
关于
  • 分类
  • 标签
  • 归档
开往 (opens new window)

花开不停

此心光明,亦复何言
首页
  • 追忆杂谈
  • 书信往来
  • 旅行记录
  • 文定之喜
  • 黄金屋-颜如玉
  • 程序化广告
  • 禅茶一味
  • 随写编年
  • 家人物语
  • 追忆青春
  • 大千世界
  • Shell
  • Java
  • Spark
  • Hadoop
  • ClickHouse
  • MySQL
  • PostgreSQL
  • MongoDB
  • 调度器
  • Zookeeper
  • Kafka
  • Flume
  • 学习周刊
关于
  • 分类
  • 标签
  • 归档
开往 (opens new window)
  • Shell编程

  • Java编程笔记

  • Spark

  • Hadoop

  • ClickHouse

    • clickhouse常用函数
    • clickhouse拆分对应索引的数组
    • clickhouse 交集 并集 差集
    • clickhouse DDL DML
    • clickhouse表函数
      • 1. S3
        • 1.1. 读外部表
        • 1.2. 写外部表
        • 1.3. 常用SETTINGS
      • 2. postgreSQL
      • 3. mysql
    • clickhouse字符串函数
    • clickhouseJSON函数
    • clickhouse数组函数
    • clickhouse时间函数
    • clickhouse类型转换函数
    • clickhouse位图bitmap函数
    • clickhouse窗口函数
    • clickhouseMD5加密函数
    • clickhouse常用settings
    • clickhouse版本升级的语法变动21.8.9.1至23.8.9.1
  • MySQL

  • PostgreSQL

  • MongoDB

  • 调度器

  • Zookeeper

  • Kafka

  • Flume

  • 编程世界
  • ClickHouse
花开不停
2024-10-25
目录

clickhouse表函数原创

ClickHouse 表函数应用非常广泛,可通过ClickHouse引擎查询、计算其他数据源数据。不再需要繁琐的数据库之间数据同步。同时支持数据源种类颇多,S3、MySQL、PostgreSQL、URL、kafka等;

具体可在官网查看,这里列举部分常用表函数进行示例学习。

clickhouse官网-表函数 (opens new window)

# 1. S3

语法:
select column1 , column2
from s3(path, [aws_access_key_id, aws_secret_access_key], format,structure, [compression]);
1
2
3
  • path — 带有文件路径的 Bucket url。在只读模式下支持以下通配符: *, ?, {abc,def} 和 {N..M} 其中 N, M 是数字, 'abc', 'def' 是字符串. 更多信息见下文.
  • format — 文件的格式.常用CSV、TSV、CustomSeparated(自定义分隔符)
  • structure — 表的结构. 格式像这样 'column1_name column1_type, column2_name column2_type, ...'.
  • compression — 压缩类型. 支持的值: none, gzip/gz, brotli/br, xz/LZMA, zstd/zst. 参数是可选的. 默认情况下,通过文件扩展名自动检测压缩类型.

# 1.1. 读外部表

以cos为例,如果clickhouse配置中没有添加access_key_id、secret_access_key,在表函数中添加即可,如果已经配置,则不需要添加。

  1. 示例1(CSV默认分隔符 , )
select id, name
from s3('http://demo.cos.ap-shanghai.myqcloud.com/test.csv','CSV','id String, name String');
1
2
  1. 示例2(自定义输入CSV文件分隔符:format_csv_delimiter)
select id, name
from s3('http://demo.cos.ap-shanghai.myqcloud.com/test.csv','CSV','id String, name String')
settings format_csv_delimiter='|';
1
2
3
  1. 示例3(指定允许异常跳过: input_format_allow_errors_num,input_format_allow_errors_ratio )
select id, name
from s3('http://demo.cos.ap-shanghai.myqcloud.com/test.csv','CSV','id String, name String')
settings format_csv_delimiter='|',
         input_format_allow_errors_num=500;
1
2
3
4

# 1.2. 写外部表

以cos为例

  1. 示例1(CSV默认分隔符 , ):但是导出数据带有引号 如果只需要逗号分隔,可以使用自定义分隔符
INSERT INTO FUNCTION
s3('http://demo.cos.ap-shanghai.myqcloud.com/out.csv','CSV','id String, name String')
select id, name
from s3('http://demo.cos.ap-shanghai.myqcloud.com/test.csv','CSV','id String, name String');
1
2
3
4
  1. 示例2(自定义输出文件分隔符:format_custom_field_delimiter)
INSERT INTO FUNCTION
s3('http://demo.cos.ap-shanghai.myqcloud.com/out.csv','CustomSeparated','id String, name String')
select id, name
from s3('http://demo.cos.ap-shanghai.myqcloud.com/test.csv','CSV','id String, name String')
settings format_csv_delimiter='|',
         format_custom_field_delimiter='|';
1
2
3
4
5
6

# 1.3. 常用SETTINGS

clickhouse官网-SETTINGS (opens new window)

用途 函数 备注
设备CSV的分隔符 format_csv_delimiter 默认 ,
自定义输出分隔符 format_custom_field_delimiter
输入可接受错误行数 input_format_allow_errors_num 默认0
允许选择时间的文本表示 date_time_input_format 默认不允许

# 2. postgreSQL

clickhouse官网-使用文档 (opens new window)

语法:
postgresql('host:port', 'database', 'table', 'user', 'password'[, `schema`])
1
2
  • host:port — PostgreSQL 服务器地址.
  • database — 远程数据库名称.
  • table — 远程表名称.
  • user — PostgreSQL 用户.
  • password — 用户密码.
  • schema — 非默认的表结构. 可选.
示例
SELECT * FROM postgresql('localhost:5432', 'test', 'test', 'postgresql_user', 'password') WHERE str IN ('test');
1
2

# 3. mysql

clickhouse官网-使用文档 (opens new window)

语法:
mysql('host:port', 'database', 'table', 'user', 'password'[, replace_query, 'on_duplicate_clause']);
1
2
  • host:port — MySQL服务器地址.
  • database — 远程数据库名称.
  • table — 远程表名称.
  • user — MySQL用户.
  • password — 用户密码.
示例
SELECT * FROM mysql('localhost:3306', 'test', 'test', 'bayonet', '123')
1
2

← clickhouse DDL DML clickhouse字符串函数→

最近更新
01
2025-05-26当我意识到我变得自私、暴躁、情绪不受控制 原创
05-26
02
clickhouse版本升级的语法变动21.8.9.1至23.8.9.1 原创
04-22
03
2025-03-28拍婚纱照 原创
04-02
更多文章>
Theme by Vdoing | Copyright © 2023-2025 | 京ICP备2023013437号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式