将对象存储与 ClickHouse Cloud 集成
先决条件
您已熟悉 ClickPipes 简介。
创建您的第一个 ClickPipe
访问 ClickHouse Cloud 服务的 SQL 控制台。
选择左侧菜单中的“数据源”按钮,然后单击“设置 ClickPipe”。
选择您的数据源。
通过为 ClickPipe 提供名称、描述(可选)、IAM 角色或凭据以及存储桶 URL 来填写表单。您可以使用类似 bash 的通配符指定多个文件。有关更多信息,请参阅有关在路径中使用通配符的文档。
UI 将显示指定存储桶中的文件列表。选择您的数据格式(我们目前支持 ClickHouse 格式的子集)以及是否要启用持续摄入 更多详细信息请见下文。
在下一步中,您可以选择是要将数据摄入新的 ClickHouse 表还是重用现有表。按照屏幕中的说明修改表名、模式和设置。您可以在顶部的示例表中看到更改的实时预览。
您还可以使用提供的控件自定义高级设置
或者,您可以选择将数据摄入现有 ClickHouse 表。在这种情况下,UI 将允许您将源中的字段映射到选定目标表中的 ClickHouse 字段。
您还可以将 虚拟列(例如 _path
或 _size
)映射到字段。
最后,您可以为内部 clickpipes 用户配置权限。
权限:ClickPipes 将创建一个专用用户,用于将数据写入目标表。您可以使用自定义角色或预定义角色之一为该内部用户选择角色
完全访问权限
:对集群具有完全访问权限。如果您使用物化视图或字典以及目标表,则需要此权限。仅目标表
:仅对目标表具有INSERT
权限。
通过单击“完成设置”,系统将注册您的 ClickPipe,您将可以在摘要表中看到它。
摘要表提供控件,用于显示来自源或 ClickHouse 中目标表的示例数据
以及用于删除 ClickPipe 并显示摄入作业摘要的控件。
恭喜!您已成功设置您的第一个 ClickPipe。如果这是一个流式 ClickPipe,它将持续运行,实时摄入来自远程数据源的数据。否则,它将摄入批处理并完成。
支持的数据源
名称 | 标识 | 类型 | 状态 | 描述 |
---|---|---|---|---|
Amazon S3 | 对象存储 | 测试版 | 配置 ClickPipes 以从对象存储摄入大量数据。 | |
Google Cloud Storage | 对象存储 | 测试版 | 配置 ClickPipes 以从对象存储摄入大量数据。 |
更多连接器将添加到 ClickPipes,您可以通过 联系我们 了解更多信息。
支持的数据格式
支持的格式为
扩展
对象存储 ClickPipes 根据由 配置的垂直自动扩展设置 确定的最小 ClickHouse 服务大小进行扩展。ClickPipe 的大小在创建管道时确定。随后对 ClickHouse 服务设置的更改不会影响 ClickPipe 的大小。
要提高大型摄入作业的吞吐量,建议在创建 ClickPipe 之前扩展 ClickHouse 服务。
物化视图
具有物化视图的对象存储 ClickPipes 在创建时需要选择“完全访问权限”。如果无法实现这一点,请确保管道使用的角色可以在目标数据库中创建表和物化视图。
在对象存储 ClickPipe 运行期间创建的物化视图将不会填充。停止并重新启动管道将导致管道拾取物化视图并开始填充它们。请参阅下面的 限制。
限制
- 对目标表、其物化视图(包括级联物化视图)或物化视图的目标表进行的任何更改都不会被管道自动拾取,并可能导致错误。您必须停止管道、进行必要的修改,然后重新启动管道才能拾取更改并避免因重试而导致的错误和重复数据。
- 角色身份验证不适用于部署到 GCP 或 Azure 的 ClickHouse Cloud 实例的 S3 ClickPipes。它仅支持 AWS ClickHouse Cloud 实例。
- ClickPipes 将仅尝试摄入大小为 10GB 或更小的对象。如果文件大于 10GB,将向 ClickPipes 专用错误表追加错误。
- S3/GCS ClickPipes **不会** 与 S3 表函数 共享列表语法。
?
- 替换任何单个字符*
- 替换除 / 之外的任意数量的任意字符,包括空字符串**
- 替换任意数量的任意字符,包括 /,包括空字符串
这是一个有效的路径
https://datasets-documentation.s3.eu-west-3.amazonaws.com/http/**.ndjson.gz
这不是一个有效的路径。{N..M}
在 ClickPipes 中不受支持。
https://datasets-documentation.s3.eu-west-3.amazonaws.com/http/{documents-01,documents-02}.ndjson.gz
持续摄入
ClickPipes 支持从 S3 和 GCS 持续摄入数据。启用后,ClickPipes 将持续从指定的路径摄入数据,它将以每 30 秒一次的频率轮询新文件。但是,新文件必须在词汇上大于最后摄入的文件,这意味着它们必须以定义摄入顺序的方式命名。例如,名为 file1
、file2
、file3
等等的文件将按顺序摄入。如果添加了一个名为 file0
的新文件,ClickPipes 不会摄入它,因为它在词汇上不比最后摄入的文件大。
归档表
ClickPipes 将在您的目标表旁边创建一个表,后缀为 s3_clickpipe_<clickpipe_id>_archive
。此表将包含 ClickPipe 摄入的所有文件的列表。此表用于在摄入过程中跟踪文件,可用于验证文件是否已摄入。归档表有一个 TTL,为 7 天。
这些表将无法使用 ClickHouse Cloud SQL 控制台看到,您需要通过外部客户端(使用 HTTPS 或原生连接)连接才能读取它们。
身份验证
S3
您可以使用无配置访问公共存储桶,对于受保护的存储桶,您可以使用 IAM 凭据 或 IAM 角色。您可以 参考本指南 以了解访问您的数据所需的权限。
GCS
与 S3 相似,您可以无需配置即可访问公共存储桶,而对于受保护的存储桶,您可以使用 HMAC 密钥 代替 AWS IAM 凭据。您可以在 Google Cloud 上阅读有关 如何设置此类密钥 的指南。
不支持直接使用 GCS 服务帐户。使用非公共存储桶进行身份验证时,必须使用 HMAC (IAM) 凭据。附加到 HMAC 凭据的服务帐户权限应为 storage.objects.list
和 storage.objects.get
。
常见问题解答
- ClickPipes 是否支持以
gs://
为前缀的 GCS 存储桶?
不支持。出于互操作性原因,我们要求您将 gs://
存储桶前缀替换为 https://storage.googleapis.com/
。