使用 ClickHouse 的 azureBlobStorage 表函数
这是从 Azure Blob Storage 或 Azure Data Lake Storage 复制数据到 ClickHouse 的最有效和简便的方法之一。通过这个表函数,您可以指示 ClickHouse 直接连接 Azure 存储并按需读取数据。
它提供了类似表的接口,使您可以直接从源选择、插入和过滤数据。该函数高度优化,并支持许多广泛使用的文件格式,包括 CSV
、JSON
、Parquet
、Arrow
、TSV
、ORC
、Avro
等。完整列表请参见 "数据格式"。
在本节中,我们将介绍将数据从 Azure Blob Storage 转移到 ClickHouse 的简单入门指南,以及有效使用此函数的重要注意事项。有关更多详细信息和高级选项,请参考官方文档:
azureBlobStorage
表函数文档页面
获取 Azure Blob Storage 访问密钥
为允许 ClickHouse 访问您的 Azure Blob Storage,您需要一个带访问密钥的连接字符串。
-
在 Azure 门户中,导航到您的 存储帐户。
-
在左侧菜单中,选择 访问密钥 选项,在 安全性 + 网络 部分下。
-
选择 key1 或 key2,并点击 连接字符串 字段旁边的 显示 按钮。
-
复制连接字符串 — 您将在 azureBlobStorage 表函数中使用此作为参数。
从 Azure Blob Storage 查询数据
打开您喜欢的 ClickHouse 查询控制台 — 这可以是 ClickHouse Cloud 网络界面、ClickHouse CLI 客户端或您用于运行查询的任何其他工具。一旦您准备好连接字符串和 ClickHouse 查询控制台,您就可以开始直接从 Azure Blob Storage 查询数据。
在以下示例中,我们查询存储在名为 data-container 的容器中的 JSON 文件中的所有数据:
如果您希望将数据复制到本地 ClickHouse 表(例如,my_table),则可以使用 INSERT INTO ... SELECT
语句:
这允许您有效地将外部数据拉入 ClickHouse,而无需中间 ETL 步骤。
使用环境传感器数据集的简单示例
作为示例,我们将从环境传感器数据集中下载一个文件。
请确保您的存储帐户启用了 允许存储帐户密钥访问,否则将无法使用帐户密钥访问数据。
-
在您的存储帐户中创建一个新容器。在本示例中,我们将其命名为 sensors。 如果您使用的是现有容器,则可以跳过此步骤。
-
将之前下载的
2019-06_bmp180.csv.zst
文件上传到容器中。 -
按照前面描述的步骤获取 Azure Blob Storage 连接字符串。
现在一切都已设置完毕,您可以直接从 Azure Blob Storage 查询数据:
- 要将数据加载到表中,请创建原始数据集中使用的架构的简化版本:
有关在查询 Azure Blob Storage 等外部数据源时的配置选项和架构推断的更多信息,请参见 从输入数据自动推断架构
- 现在将数据从 Azure Blob Storage 插入到 sensors 表中:
您的传感器表现在已填充来自存储在 Azure Blob Storage 中的 2019-06_bmp180.csv.zst
文件的数据。
其他资源
这只是使用 azureBlobStorage 函数的基本介绍。有关更多高级选项和配置详细信息,请参考官方文档: