Esc

DynamoDB

Overview

Amazon DynamoDB is a fully managed, serverless NoSQL key-value and document database. It stores schemaless items in tables keyed by a partition key (and an optional sort key), scales automatically, and delivers single-digit millisecond latency. DynamoDB runs only on AWS, with a local emulator (DynamoDB Local) available for development.

Driver

Arris connects with the official aws-sdk-dynamodb crate over the DynamoDB JSON API. Queries are issued as PartiQL, DynamoDB's SQL-compatible dialect, through the ExecuteStatement operation.

Connection fields

Field Description
Region AWS region the table lives in, such as us-east-1. Required unless supplied by the environment.
Access Key ID AWS access key id. Leave blank to use the default credential chain (environment, shared profile, or IAM role).
Secret Access Key AWS secret access key paired with the access key id. Stored in the macOS Keychain.
Session Token Optional temporary session token for STS or assumed-role credentials.
Endpoint URL Optional endpoint override, for example http://localhost:8000 to target DynamoDB Local or a VPC endpoint.

DynamoDB has no host, port, or database fields, and no connection URI. Configure the fields above directly. All connections also support an optional SSH tunnel; see SSH tunnels for details.

Authentication

When you enter an access key id and secret access key, Arris uses them as static credentials (with the session token if provided). When those fields are blank, the AWS default credential chain is used, resolving credentials from environment variables, the shared ~/.aws/credentials profile, or an attached IAM role. Connections always use TLS, so there are no SSL mode options.

text DynamoDB Local endpoint
http://localhost:8000

Schema browser

Once connected, Arris lists every table in the region. DynamoDB only declares its key attributes, so Arris samples a page of items per table to surface the rest. Each table node shows the following children:

Double-click any table to open it in a new tab with browse mode.

Query language

DynamoDB has no SQL surface, so Arris uses PartiQL for every statement. Write PartiQL directly in the editor; statements run through ExecuteStatement and read results page through DynamoDB's NextToken automatically. Result columns follow your SELECT projection order, and ORDER BY (which PartiQL itself lacks) is applied by Arris over the full result set. Arris also accepts the familiar ANSI-style INSERT INTO t (cols) VALUES (...) and translates it to PartiQL for you, and applies UPDATE / DELETE with any WHERE (not only a full primary key).

sql PartiQL examples
SELECT * FROM "orders" WHERE "customer_id" = 1
INSERT INTO "orders" VALUE {'order_id': 200, 'customer_id': 1, 'status': 'pending', 'amount': 42.00}
UPDATE "orders" SET "status" = 'shipped' WHERE "order_id" = 200
DELETE FROM "orders" WHERE "order_id" = 200

Supported PartiQL commands

Command Notes
SELECT Reads items from a table or index. Result columns follow the projection order and page automatically via NextToken.
INSERT Adds items. Both the native PartiQL VALUE document form and the standard INSERT INTO t (cols) VALUES (...) form (including multiple rows) are accepted.
UPDATE Updates matching items. A full primary-key match runs directly; any other WHERE (a non-key or range condition) is applied by selecting the matching rows first, then updating each.
DELETE Deletes matching items, using the same full-key-or-match behavior as UPDATE.

Unsupported commands

Command Notes
EXPLAIN DynamoDB has no query planner, so plan output is not available.
JOIN PartiQL on DynamoDB does not support joins across tables. Use federation mode to join a DynamoDB table with another source.
GROUP BY and aggregates PartiQL has no GROUP BY or aggregate functions (COUNT, SUM, ...). Run these through federation mode, which aggregates in the query engine.
DDL (CREATE / DROP) Manage tables through the AWS console, CLI, or infrastructure tooling.