--- warning: DO NOT CHANGE THIS MANUALLY, THIS IS GENERATED BY https://github.com/duckdb/community-extensions repository, check README there title: dynamodb excerpt: | DuckDB Community Extensions Adds a dynamodb_scan function that enables querying DynamoDB tables. extension: name: dynamodb description: Adds a dynamodb_scan function that enables querying DynamoDB tables. version: 0.0.2 language: C++ build: cmake license: MIT excluded_platforms: "wasm_mvp;wasm_eh;wasm_threads" maintainers: - lukaswelsch repo: github: lukaswelsch/duckdb-dynamodb ref: 2eb2dd68db65ef4a8590b30b9931471b3b30a75c docs: hello_world: | -- Create a DynamoDB secret based on the credential_chain CREATE OR REPLACE SECRET dynamo_secret ( TYPE dynamodb ); -- Query a DynamoDB table called 'orders'. The table has a GSI on status, to which this query restricts results. FROM dynamodb_scan('orders') WHERE status='ACTIVE'; -- Perform a SUM aggregation on a full table, without a GSI or PK. This requires setting allow_full_scan to true. SELECT SUM(amount) FROM dynamodb_scan('orders', allow_full_scan=True) WHERE createdAt::timestamp > '2026-05-01 00:00:00'::TIMESTAMP; extended_description: | This extension adds support for querying DynamoDB tables directly from DuckDB. It implements filter pushdown on partition keys, sort keys, and GSIs to minimize read capacity consumption, with remaining filtering and all aggregation handled by DuckDB's execution engine. For a detailed description take a look at the [extension repository](https://github.com/lukaswelsch/duckdb-dynamodb). Parameter reference: - **table_name ('orders')**: Target DynamoDB table to scan. - **endpoint**: Custom connection URL (useful for local development). - **allow_full_scan (false / true)**: Safety toggle to prevent accidental unindexed full-table reads. - **parallel_segments**: Number of threads to divide and speed up the scan. - **schema_mode ('hybrid'|'infer')**: Controls how DynamoDB attributes are mapped to data types. - hybrid (default): activates the hybrid mode, in which rare attributes are stored in an _extra JSON column. - infer: same as hybrid_threshold=0; all attributes are converted to columns - **hybrid_threshold (0.8)**: Attributes must appear in this percent of samples to be a column - **sample_size (200)**: How many rows should be checked to infer the schema from. extension_star_count: 4 extension_star_count_pretty: 4 extension_download_count: 727 extension_download_count_pretty: 727 image: '/images/community_extensions/social_preview/preview_community_extension_dynamodb.png' layout: community_extension_doc --- ### Compatibility Matrix This table covers all DuckDB releases that have not reached [end-of-life](https://duckdb.org/release_calendar), including LTS releases, and shows the 2 most recent patch releases of each. Older patch releases are not listed, but the extension may be available for them as well.
| Platform | 1.4.4 | 1.4.5 | 1.5.5 | 1.5.6 | 2.0.0 | | :--- | :---: | :---: | :---: | :---: | :---: | | Linux AMD64 | ❌ | ❌ | ✅ | ❌ | ❌ | | Linux ARM64 | ❌ | ❌ | ✅ | ❌ | ❌ | | macOS AMD64 | ❌ | ❌ | ✅ | ❌ | ❌ | | macOS ARM64 | ❌ | ❌ | ✅ | ❌ | ❌ | | Windows AMD64 | ❌ | ❌ | ✅ | ❌ | ❌ | | Windows ARM64 | ❌ | ❌ | ❌ | ❌ | ❌ | | WebAssembly | ❌ | ❌ | ❌ | ❌ | ❌ | ### Installing and Loading ```sql INSTALL {{ page.extension.name }} FROM community; LOAD {{ page.extension.name }}; ``` {% if page.docs.hello_world %} ### Example ```sql {{ page.docs.hello_world }}``` {% endif %} {% if page.docs.extended_description %} ### About {{ page.extension.name }} {{ page.docs.extended_description }} {% endif %} ### Added Functions | function_name | function_type | description | comment | examples | |---------------|---------------|--------------------------------|---------|--------------------------------| | dynamodb_scan | table | Scan a DynamoDB table directly | NULL | [FROM dynamodb_scan('orders')] | ### Overloaded Functions This extension does not add any function overloads. ### Added Types This extension does not add any types. ### Added Settings This extension does not add any settings.