DuckDB SQL开发

更新时间:
复制为 MD 格式

EMR Serverless Spark集成了DuckDB,为您提供轻量级、高效的数据分析能力。通过DuckDB SQL任务,您可以快速进行数据探索、原型开发和临时性数据查询。

前提条件

使用限制

  • 仅支持读取OSS文件及DLF Catalog数据。

  • 通过DuckDB读取DLF数据时,存在以下限制:

    • 操作类型:仅支持读取Paimon Append表,暂不支持读取主键表和写入操作。

    • 表格式要求:仅支持file.format = 'parquet'Paimon表。

    • Catalog类型要求:不支持访问通过数据共享创建的DLF Catalog。

创建DuckDB SQL任务

  1. 进入开发页面。

    1. 登录E-MapReduce控制台

    2. 在左侧导航栏,选择EMR Serverless > Spark

    3. Spark页面,单击目标工作空间名称。

    4. 在左侧导航栏,单击数据开发

  2. 新建任务。

    1. 在数据开发页面,单击新建任务

    2. 新建任务对话框中,选择交互式开发 > DuckDB SQL

    3. 输入任务名称,单击确定

    4. 在右上角选择DuckDB会话。

    5. 在新建的任务编辑器中输入SQL语句。

读取OSS文件

说明

在进行OSS文件的读写操作之前,请确保已开通OSS服务,并创建相应的存储空间,同时确认Serverless Spark工作空间执行角色具备对该存储空间的访问权限。

  • 查看Parquet、CSV、JSON文件的内容。

    -- 查看 Parquet 文件的内容
    SELECT * FROM 'oss://bucket/path/to/test.parquet';
    -- 查看 CSV 文件的内容
    SELECT * FROM 'oss://bucket/path/to/test.csv';
    -- 查看 JSON 文件的内容
    SELECT * FROM 'oss://bucket/path/to/test.json';
  • 查看Parquet文件Schema。

    SELECT * FROM parquet_schema('oss://your-bucket/path/to/test.parquet');
  • 将查询结果导出为CSV文件。

    COPY (SELECT * FROM 'oss://your-bucket/path/to/test.parquet')
    TO 'oss://your-bucket/path/to/output.csv'
    (HEADER, DELIMITER ',');

访问DLF Catalog

说明

通过DuckDB读取DLF数据时,存在以下限制:

  • 操作类型:仅支持读取Paimon Append表,暂不支持读取主键表和写入操作。

  • 表格式要求:仅支持file.format = 'parquet'Paimon表。

  • Catalog类型要求:不支持访问通过数据共享创建的DLF Catalog。

  • 查看当前工作空间已经绑定的DLF Catalog。有关更多DLF数据目录的内容,请参见管理数据目录。

    SHOW DATABASES;
  • 查询DLF Catalog中的表数据。

    USE <catalogName>.<databaseName>;
    SELECT * FROM <tableName> LIMIT 10;