1
0
mirror of synced 2025-12-20 10:32:35 -05:00
Files
airbyte/docs/integrations/sources/dynamodb.md
devin-ai-integration[bot] 5bf1f0231a chore(source-dynamodb): Convert to new gradle build flow (do not merge) (#62916)
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: yue.li@airbyte.io <yue.li@airbyte.io>
2025-07-11 01:04:49 +00:00

102 lines
5.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Dynamodb
The Dynamodb source allows you to sync data from Dynamodb. The source supports Full Refresh and
Incremental sync strategies.
## Resulting schema
Dynamodb doesn't have table schemas. The discover phase has three steps:
### Step 1. Retrieve items
The connector scans the table with a scan limit of 1k and if the data set size is > 1MB it will
initiate another scan with the same limit until it has >= 1k items.
### Step 2. Combining attributes
After retrieving the items it will combine all the different top level attributes found in the
retrieved items. The implementation assumes that the same attribute present in different items has
the same type and possibly nested attributes values.
### Step 3. Determine property types
For each item attribute found the connector determines its type by calling AttributeValue.type(),
depending on the received type it will map the attribute to one of the supported Airbyte types in
the schema.
## Features
| Feature | Supported |
| :---------------------------- | :-------- |
| Full Refresh Sync | Yes |
| Incremental - Append Sync | Yes |
| Replicate Incremental Deletes | No |
| Namespaces | No |
### Full Refresh sync
Works as usual full refresh sync.
### Incremental sync
Cursor field can't be nested, and it needs to be top level attribute in the item.
Cursor should **never** be blank. and it needs to be either a string or integer type - the
incremental sync results might be unpredictable and will totally rely on Dynamodb comparison
algorithm.
Only `ISO 8601` and `epoch` cursor types are supported. Cursor type is determined based on the
property type present in the previously generated schema:
- `ISO 8601` - if cursor type is string
- `epoch` - if cursor type is integer
## Getting started
This guide describes in details how you can configure the connector to connect with Dynamodb.
## Role Based Access
Defining **_access_key_id_** and **_secret_access_key_** will use User based Access. Role based access can be achieved
by omitting both values from the configuration. The connector will then use DefaultCredentialsProvider which will use
the underlying role executing the container workload in AWS.
### Сonfiguration Parameters
- **_endpoint_**: aws endpoint of the dynamodb instance
- **_region_**: the region code of the dynamodb instance
- (Optional) **_access_key_id_**: the access key for the IAM user with the required permissions. Omit for role based access.
- (Optional) **_secret_access_key_**: the secret key for the IAM user with the required permissions. Omit for role based access.
- **_reserved_attribute_names_**: comma separated list of attribute names present in the replication
tables which contain reserved words or special characters.
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.ExpressionAttributeNames.html
## Changelog
<details>
<summary>Expand to review</summary>
| Version | Date | Pull Request | Subject |
| :------ | :--------- | :-------------------------------------------------------- | :------------------------------------------------------------------- |
| 0.3.11 | 2025-07-10 | [62916](https://github.com/airbytehq/airbyte/pull/62916) | Add gradle docker plugins |
| 0.3.10 | 2025-06-14 | [61601](https://github.com/airbytehq/airbyte/pull/61601) | fix(source-dynamodb): Replace ListNode with Iterator for lazyness #61600 |
| 0.3.9 | 2025-02-12 | [53202](https://github.com/airbytehq/airbyte/pull/53202) | fixed IRSA by adding STS to classpath of connector. |
| 0.3.8 | 2025-01-10 | [51489](https://github.com/airbytehq/airbyte/pull/51489) | Use a non root base image |
| 0.3.7 | 2024-12-18 | [49881](https://github.com/airbytehq/airbyte/pull/49881) | Use a base image: airbyte/java-connector-base:1.0.0 |
| 0.3.6 | 2024-07-19 | [41936](https://github.com/airbytehq/airbyte/pull/41936) | Fix incorrect type check for incremental read |
| 0.3.5 | 2024-07-23 | [42433](https://github.com/airbytehq/airbyte/pull/42433) | add PR number |
| 0.3.4 | 2024-07-23 | [49881](https://github.com/airbytehq/airbyte/pull/49881) | fix primary key fetching |
| 0.3.3 | 2024-07-22 | [49881](https://github.com/airbytehq/airbyte/pull/49881) | fix primary key fetching |
| 0.3.2 | 2024-05-01 | [27045](https://github.com/airbytehq/airbyte/pull/27045) | Fix missing scan permissions |
| 0.3.1 | 2024-05-01 | [31935](https://github.com/airbytehq/airbyte/pull/31935) | Fix list more than 100 tables |
| 0.3.0 | 2024-04-24 | [37530](https://github.com/airbytehq/airbyte/pull/37530) | Allow role based access |
| 0.2.3 | 2024-02-13 | [35232](https://github.com/airbytehq/airbyte/pull/35232) | Adopt CDK 0.20.4 |
| 0.2.2 | 2024-01-24 | [34453](https://github.com/airbytehq/airbyte/pull/34453) | bump CDK version |
| 0.2.1 | 2024-01-03 | [#33924](https://github.com/airbytehq/airbyte/pull/33924) | Add new ap-southeast-3 AWS region |
| 0.2.0 | 18-12-2023 | https://github.com/airbytehq/airbyte/pull/33485 | Remove LEGACY state |
| 0.1.2 | 01-19-2023 | https://github.com/airbytehq/airbyte/pull/20172 | Fix reserved words in projection expression & make them configurable |
| 0.1.1 | 02-09-2023 | https://github.com/airbytehq/airbyte/pull/22682 | Fix build |
| 0.1.0 | 11-14-2022 | https://github.com/airbytehq/airbyte/pull/18750 | Initial version |
</details>