IBM Cloud Docs
从对象存储桶输入数据

从对象存储桶输入数据

在本教程中,您将学习将数据移动到数据湖或对象存储桶,并将数据文件加载到 Presto 中。 您将学会在IBM® watsonx.data 中优化文件格式,选择表格格式并运行复杂的 SQL 查询。

准备工作

本教程需要

  • 订阅云上的 watsonx.data。
  • 您引入的数据桶的配置详细信息。 这是与watsonx.data 建立连接所必需的。
  • 确保数据桶有数据。

关于本任务

场景您需要对对象存储桶中的数据文件运行 SQL 查询。 为此,您必须将对象存储桶中的数据文件附加到 Presto 中。 您还可以将数据转换为 Parquet 或 ORC 中的优化分析格式,以提高查询性能并减少服务器和存储资源消耗。 现在,你可以针对创建的表运行 SQL 查询。

本教程的目标如下:

  • 在 watsonx.data 服务中创建基础架构。
  • 建立与客户数据桶的连接。
  • 从桶中查询

过程

  1. 将数据上传到对象存储桶并附加到 Presto

    在本节教程中,您将管理对象存储桶中的数据,并将存储桶附加到 MDS 和关联 Presto ( Java ) 引擎。

    1. 访问任何一种对象存储访问工具,如 S3 浏览器、AWS S3 控制台、直接 S3 API 和各种 CLI/UI 对象存储工具。

    2. 使用工具将数据文件加载到对象存储桶。

    3. 使用 watsonx.data UI 将对象存储桶注册并附加到 MDS,并与 Presto ( Java ) 引擎关联。

    4. 或者,也可以注册一个对象存储桶,并将其与预先存在的数据附加到 MDS。

  2. 将数据文件加载到 Presto 中

    将对象存储桶附加到 MDS 后,需要通过 Hive 连接器创建模式和外部表,将数据文件加载到 Presto ( Java ) 中。

    1. 运行以下命令为要访问的数据创建模式。
    CREATE SCHEMA <SCHEMA_NAME> WITH ( location = '<SCHEMA_LOCATION>' );
    

    例如:

    CREATE SCHEMA hive.gosales WITH ( location = 's3a://lhbeta/gosales' );
    
    1. 运行以下命令,通过指向上传的数据文件,使用外部位置创建表格。
    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' );
    
  3. 使用分析表生成统计数据。

    如果想使用数据,而不为不同的表格式或更多的表优化创建新副本,则可使用分析表单独生成统计数据。

    1. 要使用分析表生成统计数据,请运行以下命令:
    analyze <TABLE_NAME>;
    

    例如:

    analyze hive.gosales.branch;
    
  4. 将数据转换为分析优化格式(可选)

    您可以使用这些数据创建不同的表格格式,并对表格进行更多优化。 建议将数据文件转换为 Parquet 或 ORC 格式的分析优化格式,以提高查询性能,减少服务器和存储资源消耗。 Iceberg 等表格式可以提供更多性能改进和功能,如快照、时间旅行以及插入、更新和删除事务支持。

    1. 要将 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;
    
    1. 要将表格格式更改为冰山格式,请运行“创建表格为”命令:
    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,用于转换或转换业务逻辑,或对数据进行排序以优化访问。 您还可以添加列分区,以提高性能。

统计数据会自动生成,作为采集新表的一部分。