S3 Express One
В конце 2023 года AWS объявил о S3 Express One Zone, варианте традиционных ведер S3 с высокой скоростью. DuckDB может читать ведра S3 Express One, используя httpfs расширение.
Данные учетных записей и конфигурация
Настройка ведер S3 Express One похожа на настройку обычных ведер S3 с одним исключением: необходимо указать конечную точку в соответствии со следующим шаблоном:
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,
REGION 'us-east-1',
KEY_ID 'AKIAIOSFODNN7EXAMPLE',
SECRET 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY',
ENDPOINT 's3express-use1-az5.us-east-1.amazonaws.com'
); Расположение экземпляра
Для лучшей производительности убедитесь, что экземпляр EC2 находится в той же зоне доступности, что и ведро S3 Express One, которое вы запрашиваете. Для определения соответствия между именами зон и идентификаторами зон используйте команду aws ec2 describe-availability-zones.
-
Соответствие имени зоны идентификатору зоны:
aws ec2 describe-availability-zones --output json \ | jq -r '.AvailabilityZones[] | select(.ZoneName == "us-east-1f") | .ZoneId'use1-az5
-
Соответствие идентификатора зоны имени зоны:
aws ec2 describe-availability-zones --output json \ | jq -r '.AvailabilityZones[] | select(.ZoneId == "use1-az5") | .ZoneName'us-east-1f
Запросы
Вы можете запросить ведро S3 Express One как любое другое ведро S3:
SELECT * FROM 's3://express-bucket-name--use1-az5--x-s3/my-file.parquet';
Производительность
Мы провели два эксперимента на экземпляре c7gd.12xlarge с использованием файла LDBC SF300 Comments creationDate Parquet (используется также в микробенчмарках руководства по производительности).
| Эксперимент | Размер файла | Время выполнения |
|---|---|---|
| Загрузка только из Parquet | 4.1 ГБ | 3.5 с |
| Создание локальной таблицы из Parquet | 4.1 ГБ | 5.1 с |
Вариант «только загрузка» выполняет загрузку как часть оператора EXPLAIN ANALYZE для измерения времени выполнения без создания локальной таблицы, в то время как вариант «создание локальной таблицы» использует CREATE TABLE ... AS SELECT для создания постоянной таблицы на локальном диске.
© Copyright 2018–2024 Stichting DuckDB Foundation
Licensed under the MIT License.
https://duckdb.org/docs/guides/network_cloud_storage/s3_express_one.html