更新时间:2024-07-24 GMT+08:00

配置ClickHouse对接OBS源文件

本章节主要介绍使用ClickHouse对接OBS进行文件读写。

使用S3表函数

  1. 登录主OMS节点。
  2. 执行以下命令获取OBS内的存储数据。

    select * from S3(path, [ak, sk,] format, structure, [compression])
    • path:访问域名/OBS文件路径,登录OBS管理控制台,在左侧导航栏单击“并行文件系统”,在“并行文件系统”页面单击对应的文件系统名称,在“文件”页面单击文件名称,文件“链接”即path路径,如图1所示。
      图1 文件路径
    • ak:参数可选,具备访问OBS权限的ak。
    • sk:参数可选,具备访问OBS权限的sk。
    • format :文件的格式。
    • structure:表的结构。
    • compression:参数可选,压缩类型。

使用S3表引擎

  1. 登录主OMS节点。
  2. 执行以下命令创建表。

    CREATE TABLE test1_s3 ('name' String, 'age' int)

    ENGINE = S3(path, [ak, sk,] format, [compression])

  3. 执行以下命令查询表。

    select * from test1_s3;

修改Manager配置

  1. 登录FusionInsight Manager,选择“集群 > 服务 > ClickHouse > 配置 > 全部配置”。搜索参数项“clickhouse-config-customize”并添加参数值。参数值的添加参考下表。

    参数

    s3.endpoint-name.endpoint

    OBS桶地址

    s3.endpoint-name.access_key_id

    OBS ak,获取方法请参考如何获取访问密钥AK/SK

    s3.endpoint-name.secret_access_key

    OBS sk,获取方法请参考如何获取访问密钥AK/SK

  1. 对于OBS直接分享出来的URL,一般是带HTTPS的,如果不能直接访问,请按如下步骤修改配置。

    登录FusionInsight Manager,选择“集群 > 服务 > ClickHouse > 配置 > 全部配置”。搜索参数项“clickhouse-config-customize”并添加参数值。参数值的添加参考下表。

    参数

    openSSL.client.loadDefaultCAFile

    true

    openSSL.client.cacheSessions

    true

    openSSL.client.disableProtocols

    sslv2,sslv3

    openSSL.client.preferServerCiphers

    true

    openSSL.client.invalidCertificateHandler.name

    AcceptCertificateHandler

  2. 修改完成后,单击“保存”。