批量从对象存储导入数据
本文档详细介绍了如何使用Lakehouse的SQL引擎从对象存储中导入数据。目前,Lakehouse支持两种主要的数据导入模式:
- 使用Volume导入:通过创建和管理对象存储上的Volume来导入数据。
- 使用Copy命令导入:利用SQL的COPY命令直接从对象存储中加载数据。
参考文档
应用场景
- 利用SQL引擎的性能优势快速读取大量数据,高效处理大规模数据集。
- 支持在数据导入过程中使用SQL进行数据转换,实现ETL(Extract, Transform, Load)流程。
- 建议在导入数据时选择通用型计算集群(GENERAL PURPOSE VIRTUAL CLUSTER),以适应批量作业和数据加载作业的需求。
使用限制
- 对象存储支持:目前Volume的目标对象存储仅支持阿里云OSS和腾讯云COS。
- 费用说明:从外部Volume下载文件可能会产生云账号的对象存储下载费用,具体费用请参考相应云服务商的计费说明。如果Lakehouse与对象存储位于同一地域,使用内网ENDPOINT可以避免额外费用。
- 跨云导入:目前不支持跨云服务商导入数据(未来版本将支持)。
使用案例
使用Volume从OSS读取CSV数据导入
本文详细介绍了如何利用Lakehouse的Volume和COPY命令从阿里云对象存储服务(OSS)导入巴西电子商务的公共数据集。或者您可以直接通过链接直接下载本次案例的数据集然后上传到OSS中,该过程包括数据表的创建、对象存储连接的配置、Volume的管理以及数据的加载和状态检查。
前置条件
- 确保已创建目标表
brazilian_customer
:
- 对目标表具有INSERT权限。
创建CONNECTION和VOLUME用于连接对象存储
- 创建一个STORAGE CONNECTION以存储和脱敏对象存储的连接信息,便于在Lakehouse中复用和管理。
- 创建一个EXTERNAL VOLUME来管理OSS上的数据。
使用Volume加载数据
- 指定Volume中需要读取的文件,可以在
files
参数中指定。 - 在
options
中可以设置CSV文件的参数,如分隔符等,具体设置可参考文档。 - 本案例中,将数据加载时进行转换,排除掉城市为‘curitiba’的记录。
查看导入数据的状态
在Lakehouse的作业运行历史中查看作业的执行状态,以确认数据导入是否成功。
使用COPY命令从OSS导入数据
本文介绍了如何使用Lakehouse的COPY命令从阿里云对象存储服务(OSS)导入巴西电子商务的公共数据集,或者您可以直接通过链接直接下载本次案例的数据集然后上传到OSS中。该过程涉及数据表的创建、连接和Volume的配置,以及数据的加载和状态检查。
前置条件
- 确保已创建目标表
brazilian_geolocation
:
- 对目标表具有INSERT权限。
创建CONNECTION和VOLUME用于连接对象存储
-
创建一个STORAGE CONNECTION来存储和脱敏对象存储的连接信息,以便在Lakehouse中多次复用和管理。
-
创建一个EXTERNAL VOLUME来管理OSS上的数据。
-
使用COPY命令加载到表中数据
使用COPY命令将数据从OSS的Volume加载到brazilian_customer
表中。
查看导入数据的状态
在Lakehouse的作业运行历史中查看作业的执行状态,以确认数据导入是否成功。
联系我们