您可以使用DuckDB会话来进行DuckDB SQL交互式开发,享受轻量级、高效的数据分析能力。本文为您介绍如何创建DuckDB会话。
背景信息
DuckDB是一款轻量级、高性能的嵌入式分析型数据库引擎,专为OLAP(联机分析处理)场景优化。
功能特性
嵌入式架构:无需独立服务器,以库的形式直接嵌入应用程序(类似SQLite),支持内存/磁盘模式。
列式存储:数据按列存储,优化聚合查询与扫描性能。
向量化执行:利用SIMD指令并行处理数据批次,减少CPU开销。
标准兼容:支持SQL-92、SQL:2011标准,涵盖CTE、窗口函数、JOIN(包括ASOF JOIN)、子查询等。
多格式直读:直接查询CSV、Parquet、JSON文件,无需导入。
零拷贝集成:与Pandas、Arrow等内存数据结构无缝转换,避免数据迁移开销。
联邦查询:通过
httpfs扩展访问远程文件(如S3),或连接PostgreSQL等外部数据库联合查询。
适用场景
交互式分析:快速处理GB~TB级数据集,替代Pandas/Excel处理大数据。
边缘计算:嵌入式部署在终端设备,执行本地数据分析。
数据科学:与Python/R生态无缝衔接,作为ML数据预处理引擎。
实时OLAP:支持高频更新与复杂查询并存的分析需求。
使用限制
DuckDB会话仅支持使用esr-4.8.0及以上、esr-3.7.0及以上引擎版本。
创建DuckDB会话
在左侧导航栏,选择EMR Serverless > Spark。
在Spark页面,单击目标工作空间名称。
在EMR Serverless Spark页面,单击左侧导航栏中的会话管理。
在会话管理页面,单击DuckDB会话页签。
在DuckDB会话列表页面,单击创建DuckDB会话。
在创建DuckDB会话对话框中,配置以下参数。
重要建议所选部署队列的并发上限至少设置为DuckDB会话所需的资源大小,具体数值以控制台展示为准。
参数
说明
名称
新建DuckDB会话的名称。支持中文、英文字母、数字、下划线(_)和连字符(-),长度为1~64个字符。同一工作空间内会话名称不可重复。
部署队列
选择用于运行DuckDB会话的资源队列。仅支持选择已就绪的队列。如果您尚未创建队列,请先前往资源队列管理页面创建。具体操作,请参见管理资源队列。
引擎版本
选择DuckDB会话使用的引擎版本。当前支持的版本请参见版本介绍。
自动停止
设置会话在无活动状态下的自动停止时间。开启后,当会话在指定时间内无任何操作时,系统将自动停止会话以节省资源。默认开启,默认时间为45分钟。
网络连接
如果您的DuckDB任务需要访问VPC内的数据源或外部服务,需要配置网络连接。在下拉列表中选择已创建的网络连接名称。具体操作,请参见新增网络连接。
cores
DuckDB的CPU数量。默认值为2 CPU。
memory
DuckDB的内存大小。默认值为8 GB。
memoryOverhead
DuckDB可用的内存。默认值为
max(384MB, 10% × memory)。Spark配置
填写Spark配置信息,默认以空格符分隔,例如,
spark.sql.catalog.paimon.metastore dlf。单击创建。
创建完成后,您可以在DuckDB会话列表页面查看新创建的会话。会话状态为运行中时,即可用于DuckDB SQL开发。
查看运行记录
在数据开发任务执行完成后,您可以通过会话管理页面查看任务的运行记录。
在会话列表页面,单击会话名称。
单击运行记录页签。
在该页面中,您可以查看任务的详细运行信息,包括运行ID、启动时间、Spark UI等信息。
