配置ClickHouse对接OBS源文件
操作场景
OBS(对象存储服务)是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力,兼容S3(Simple Storage Service)协议,用户可以在MRS ClickHouse集群中通过S3表函数或S3表引擎轻松读取和写入OBS中的数据。
本章节将主要介绍如何使用ClickHouse对OBS文件系统中的数据文件进行读写操作。
使用S3表函数对接OBS
- 获取OBS文件路径。
登录OBS服务管理控制台,在左侧导航栏单击“并行文件系统”,在“并行文件系统”页面单击对应的文件系统名称,在“文件”页面单击文件名称,获取前提条件上传的数据文件详细路径。图1 文件路径
- 安装ClickHouse客户端。
详细操作请参考安装MRS客户端。
- 使用ClickHouse客户端连接到ClickHouse服务端,具体请参考ClickHouse客户端使用实践。
- 执行以下命令获取OBS内的存储数据。
select * from S3(path, [ak, sk,] format, structure, [compression])
表1 参数解释 参数
说明
path
OBS文件路径,获取方法请参考1。
ak/sk
参数可选,具备访问OBS权限的AK/SK,获取方法请参考如何获取访问密钥AK/SK。
format
数据文件格式。常见的格式包括 CSV, Parquet, ORC, JSON 等。
structure
数据文件的结构,通常是一个表格的列名和数据类型。
例如,structure 可以是一个字符串,描述了列名和数据类型,如 column1 INT, column2 STRING, column3 DATE。
compression
参数可选,数据文件的压缩方式,例如 gzip, snappy, bzip2 等。
使用S3表引擎对接OBS
- 安装ClickHouse客户端。
详细操作请参考安装MRS客户端。
- 使用ClickHouse客户端连接到ClickHouse服务端,具体请参考ClickHouse客户端使用实践。
- 执行以下命令创建表。
CREATE TABLE test1_s3 ('name' String, 'age' int) ENGINE = S3(path, [ak, sk,] format, [compression])
表2 参数解释 参数
说明
test1_s3
创建的表名称。
path
OBS文件路径,获取方法请参考1。
ak, sk
参数可选,具备访问OBS权限的AK/SK,获取方法请参考如何获取访问密钥AK/SK。
format
数据文件的格式。常见的格式包括 CSV, Parquet, ORC, JSON 等。
compression
参数可选,数据文件的压缩方式,例如 gzip, snappy, bzip2 等。
- 执行以下命令查询表。
select * from test1_s3;