⌘+k ctrl+k
1.4 (LTS)
搜索快捷键 cmd + k | ctrl + k
S3 Express One

2023 年底,AWS 宣布推出了 S3 Express One Zone,这是传统 S3 存储桶的高速变体。DuckDB 可以使用 httpfs 扩展读取 S3 Express One 存储桶。

凭据和配置

S3 Express One 存储桶的配置与常规 S3 存储桶类似,但有一个例外:您必须按照以下模式指定终端节点 (endpoint):

s3express-availability_zone.region.amazonaws.com

其中 availability_zone(例如 use-az5)可从 S3 Express One 存储桶的配置页面获取,而 region 是 AWS 区域(例如 us-east-1)。

例如,要允许 DuckDB 使用 S3 Express One 存储桶,请按照以下方式配置 Secrets manager

CREATE SECRET (
    TYPE s3,
    KEY_ID 'AKIAIOSFODNN7EXAMPLE',
    SECRET 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY',
    REGION 'us-east-1',
    ENDPOINT 's3express-use1-az5.us-east-1.amazonaws.com'
);

实例位置

为了获得最佳性能,请确保 EC2 实例与您正在查询的 S3 Express One 存储桶位于同一个可用区。要确定区域名称与区域 ID 之间的映射,请使用 aws ec2 describe-availability-zones 命令。

  • 区域名称到区域 ID 的映射

    aws ec2 describe-availability-zones --output json \
        | jq -r '.AvailabilityZones[] | select(.ZoneName == "us-east-1f") | .ZoneId'
    
    use1-az5
    
  • 区域 ID 到区域名称的映射

    aws ec2 describe-availability-zones --output json \
        | jq -r '.AvailabilityZones[] | select(.ZoneId == "use1-az5") | .ZoneName'
    
    us-east-1f
    

查询

您可以像查询任何其他 S3 存储桶一样查询 S3 Express One 存储桶:

SELECT *
FROM 's3://express-bucket-name--use1-az5--x-s3/my-file.parquet';

性能

以下实验是在 c7gd.12xlarge 实例上使用 LDBC SF300 Comments creationDate Parquet 文件运行的(该文件也用于性能指南的微基准测试)。

实验 文件大小 运行时长
仅从 Parquet 加载 4.1 GB 3.5 秒
从 Parquet 创建本地表 4.1 GB 5.1 秒

“仅加载”变体是在 EXPLAIN ANALYZE 语句中运行加载过程,以测量运行时间而不实际创建本地表;而“创建本地表”变体使用 CREATE TABLE ... AS SELECT 在本地磁盘上创建一个持久表。

© 2025 DuckDB 基金会,阿姆斯特丹,荷兰
行为准则 商标使用指南