从对象存储桶输入数据
在本教程中,您将学习将数据移动到数据湖或对象存储桶,并将数据文件加载到 Presto 中。 您将学会在IBM® watsonx.data 中优化文件格式,选择表格格式并运行复杂的 SQL 查询。
准备工作
本教程需要
- 订阅云上的 watsonx.data。
- 您引入的数据桶的配置详细信息。 这是与watsonx.data 建立连接所必需的。
- 确保数据桶有数据。
关于本任务
场景您需要对对象存储桶中的数据文件运行 SQL 查询。 为此,您必须将对象存储桶中的数据文件附加到 Presto 中。 您还可以将数据转换为 Parquet 或 ORC 中的优化分析格式,以提高查询性能并减少服务器和存储资源消耗。 现在,你可以针对创建的表运行 SQL 查询。
本教程的目标如下:
- 在 watsonx.data 服务中创建基础架构。
- 建立与客户数据桶的连接。
- 从桶中查询
过程
-
将数据上传到对象存储桶并附加到 Presto
在本节教程中,您将管理对象存储桶中的数据,并将存储桶附加到 MDS 和关联 Presto ( Java ) 引擎。
-
访问任何一种对象存储访问工具,如 S3 浏览器、AWS S3 控制台、直接 S3 API 和各种 CLI/UI 对象存储工具。
-
使用工具将数据文件加载到对象存储桶。
-
使用 watsonx.data UI 将对象存储桶注册并附加到 MDS,并与 Presto ( Java ) 引擎关联。
-
或者,也可以注册一个对象存储桶,并将其与预先存在的数据附加到 MDS。
-
-
将数据文件加载到 Presto 中
将对象存储桶附加到 MDS 后,需要通过 Hive 连接器创建模式和外部表,将数据文件加载到 Presto ( Java ) 中。
- 运行以下命令为要访问的数据创建模式。
CREATE SCHEMA <SCHEMA_NAME> WITH ( location = '<SCHEMA_LOCATION>' );
例如:
CREATE SCHEMA hive.gosales WITH ( location = 's3a://lhbeta/gosales' );
- 运行以下命令,通过指向上传的数据文件,使用外部位置创建表格。
CREATE TABLE IF NOT EXISTS <TABLE_NAME> ("<COLUMN_NAMES>" <DATA_TYPE>) WITH ( format = '<DATA_FORMAT>', external_location = '<DATA_FILE_LOCATION>' );
例如:
CREATE TABLE IF NOT EXISTS hive.gosales.branch ("BRANCH_CODE" varchar, "ADDRESS1" varchar, "ADDRESS1_MB" varchar, "ADDRESS2" varchar, "ADDRESS2_MB" varchar, "CITY" varchar, "CITY_MB" varchar, "PROV_STATE" varchar, "PROV_STATE_MB" varchar, "POSTAL_ZONE" varchar, "COUNTRY_CODE" varchar, "ORGANIZATION_CODE" varchar, "WAREHOUSE_BRANCH_CODE" varchar) WITH ( format = 'CSV', external_location = 's3a://lhbeta/gosales/branch' );
-
使用分析表生成统计数据。
如果想使用数据,而不为不同的表格式或更多的表优化创建新副本,则可使用分析表单独生成统计数据。
- 要使用分析表生成统计数据,请运行以下命令:
analyze <TABLE_NAME>;
例如:
analyze hive.gosales.branch;
-
将数据转换为分析优化格式(可选)
您可以使用这些数据创建不同的表格格式,并对表格进行更多优化。 建议将数据文件转换为 Parquet 或 ORC 格式的分析优化格式,以提高查询性能,减少服务器和存储资源消耗。 Iceberg 等表格式可以提供更多性能改进和功能,如快照、时间旅行以及插入、更新和删除事务支持。
- 要将 CSV 格式的数据创建为 Parquet 格式的表格,请运行 Create table as 命令:
CREATE TABLE IF NOT EXISTS <TABLE_NAME> WITH ( format = 'PARQUET') AS SELECT * FROM <TABLE_NAME>;
例如:
CREATE TABLE IF NOT EXISTS hive.default.branch WITH ( format = 'PARQUET') AS SELECT * FROM hive.gosales.branch;
- 要将表格格式更改为冰山格式,请运行“创建表格为”命令:
CREATE TABLE IF NOT EXISTS <TABLE_NAME> WITH ( format = 'PARQUET') AS SELECT * FROM <TABLE_NAME>;
例如:
CREATE TABLE IF NOT EXISTS iceberg-beta.default.branch WITH ( format = 'PARQUET') AS SELECT * FROM hive.gosales.branch;
您还可以在选择子句中加入任何额外的 SQL,用于转换或转换业务逻辑,或对数据进行排序以优化访问。 您还可以添加列分区,以提高性能。
统计数据会自动生成,作为采集新表的一部分。