S3Tables

target-s3tables (amaingot variant)🥇

AWS S3 Tables Buckets

The target-s3tables loader sends data into S3Tables after it was pulled from a source using an extractor

Getting Started

Prerequisites

If you haven't already, follow the initial steps of the Getting Started guide:

  1. Install Meltano
  2. Create your Meltano project

Installation and configuration

  1. Add the target-s3tables loader to your project using
    meltano add
    :
  2. meltano add target-s3tables
  3. Configure the target-s3tables settings using
    meltano config
    :
  4. meltano config target-s3tables set --interactive

Next steps

If you run into any issues, learn how to get help.

Capabilities

The current capabilities for target-s3tables may have been automatically set when originally added to the Hub. Please review the capabilities when using this loader. If you find they are out of date, please consider updating them by making a pull request to the YAML file that defines the capabilities for this loader.

This plugin has the following capabilities:

  • about
  • schema-flattening
  • stream-maps
  • structured-logging
  • validate-records

You can override these capabilities or specify additional ones in your meltano.yml by adding the capabilities key.

Settings

The target-s3tables settings that are known to Meltano are documented below. To quickly find the setting you're looking for, click on any setting name from the list:

You can also list these settings using

meltano config
with the list subcommand:

meltano config target-s3tables list

You can override these settings or specify additional ones in your meltano.yml by adding the settings key.

Please consider adding any settings you have defined locally to this definition on MeltanoHub by making a pull request to the YAML file that defines the settings for this plugin.

Account ID (account_id)

  • Environment variable: TARGET_S3TABLES_ACCOUNT_ID

AWS account id (used to build glue_warehouse if not provided).


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set account_id [value]

AWS Access Key ID (aws_access_key_id)

  • Environment variable: TARGET_S3TABLES_AWS_ACCESS_KEY_ID

Optional AWS access key id override (otherwise use default AWS credential chain).


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set aws_access_key_id [value]

AWS Secret Access Key (aws_secret_access_key)

  • Environment variable: TARGET_S3TABLES_AWS_SECRET_ACCESS_KEY

Optional AWS secret access key override (otherwise use default AWS credential chain).


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set aws_secret_access_key [value]

AWS Session Token (aws_session_token)

  • Environment variable: TARGET_S3TABLES_AWS_SESSION_TOKEN

Optional AWS session token override.


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set aws_session_token [value]

Batch Max Bytes (batch_max_bytes)

  • Environment variable: TARGET_S3TABLES_BATCH_MAX_BYTES

Optional approximate byte limit for an in-memory batch.


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set batch_max_bytes [value]

Batch Size Rows (batch_size_rows)

  • Environment variable: TARGET_S3TABLES_BATCH_SIZE_ROWS
  • Default Value: 5000

Max rows per Iceberg commit.


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set batch_size_rows [value]

Catalog Mode (catalog_mode)

  • Environment variable: TARGET_S3TABLES_CATALOG_MODE
  • Default Value: glue_rest

Iceberg REST catalog mode to use (AWS Glue recommended).


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set catalog_mode [value]

Create Tables (create_tables)

  • Environment variable: TARGET_S3TABLES_CREATE_TABLES
  • Default Value: true

Create Iceberg tables when missing.


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set create_tables [value]

Debug Http (debug_http)

  • Environment variable: TARGET_S3TABLES_DEBUG_HTTP
  • Default Value: false

Enable debug logging for HTTP/SigV4 interactions.


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set debug_http [value]

Evolve Schema (evolve_schema)

  • Environment variable: TARGET_S3TABLES_EVOLVE_SCHEMA
  • Default Value: true

Evolve Iceberg schema when stream schema changes.


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set evolve_schema [value]

Max Key Length (flattening_max_key_length)

  • Environment variable: TARGET_S3TABLES_FLATTENING_MAX_KEY_LENGTH

The maximum length of a flattened key.


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set flattening_max_key_length [value]

Glue Uri (glue_uri)

  • Environment variable: TARGET_S3TABLES_GLUE_URI

Glue Iceberg REST endpoint URI. Defaults to https://glue..amazonaws.com/iceberg.


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set glue_uri [value]

Glue Warehouse (glue_warehouse)

  • Environment variable: TARGET_S3TABLES_GLUE_WAREHOUSE

Glue warehouse string: :s3tablescatalog/.


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set glue_warehouse [value]

Log Level (log_level)

  • Environment variable: TARGET_S3TABLES_LOG_LEVEL

Optional log level override for this process (e.g. DEBUG, INFO).


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set log_level [value]

Namespace (namespace)

  • Environment variable: TARGET_S3TABLES_NAMESPACE
  • Default Value: default

Iceberg namespace (database).


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set namespace [value]

Region (region)

  • Environment variable: TARGET_S3TABLES_REGION

AWS region for the Iceberg REST endpoint (e.g. us-east-1).


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set region [value]

S3Tables Uri (s3tables_uri)

  • Environment variable: TARGET_S3TABLES_S3TABLES_URI

S3 Tables Iceberg REST endpoint URI. Defaults to https://s3tables..amazonaws.com/iceberg.


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set s3tables_uri [value]

Sanitize Names (sanitize_names)

  • Environment variable: TARGET_S3TABLES_SANITIZE_NAMES
  • Default Value: true

Sanitize stream/table/column names to Iceberg/AWS-friendly identifiers.


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set sanitize_names [value]

Signing Name (signing_name)

  • Environment variable: TARGET_S3TABLES_SIGNING_NAME

SigV4 signing name (defaults to glue or s3tables based on mode).


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set signing_name [value]

Signing Region (signing_region)

  • Environment variable: TARGET_S3TABLES_SIGNING_REGION

SigV4 signing region (defaults to region).


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set signing_region [value]

Sigv4 Enabled (sigv4_enabled)

  • Environment variable: TARGET_S3TABLES_SIGV4_ENABLED
  • Default Value: true

Enable AWS SigV4 request signing for the Iceberg REST catalog.


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set sigv4_enabled [value]

Snapshot Properties (snapshot_properties)

  • Environment variable: TARGET_S3TABLES_SNAPSHOT_PROPERTIES
  • Default Value: {}

Snapshot properties passed to append/overwrite calls (when supported).


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set snapshot_properties [value]

Table Bucket Arn (table_bucket_arn)

  • Environment variable: TARGET_S3TABLES_TABLE_BUCKET_ARN

Table bucket ARN: arn:aws:s3tables:::bucket/.


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set table_bucket_arn [value]

Table Bucket Name (table_bucket_name)

  • Environment variable: TARGET_S3TABLES_TABLE_BUCKET_NAME

S3 Tables table bucket name (used to build glue_warehouse if not provided).


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set table_bucket_name [value]

Table Name Mapping (table_name_mapping)

  • Environment variable: TARGET_S3TABLES_TABLE_NAME_MAPPING
  • Default Value: {}

Mapping of Singer stream name -> Iceberg table name.


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set table_name_mapping [value]

Table Name Prefix (table_name_prefix)

  • Environment variable: TARGET_S3TABLES_TABLE_NAME_PREFIX

Prefix applied to all Iceberg table names.


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set table_name_prefix [value]

Table Properties (table_properties)

  • Environment variable: TARGET_S3TABLES_TABLE_PROPERTIES
  • Default Value: {}

Iceberg table properties passed at create_table time.


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set table_properties [value]

Write Mode (write_mode)

  • Environment variable: TARGET_S3TABLES_WRITE_MODE
  • Default Value: append

Write mode: append for incremental; overwrite to replace table contents.


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set write_mode [value]
Expand To Show SDK Settings

Add Record Metadata (add_record_metadata)

  • Environment variable: TARGET_S3TABLES_ADD_RECORD_METADATA

Whether to add metadata fields to records.


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set add_record_metadata [value]

Faker Locale (faker_config.locale)

  • Environment variable: TARGET_S3TABLES_FAKER_CONFIG_LOCALE

One or more LCID locale strings to produce localized output for: https://faker.readthedocs.io/en/master/#localization


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set faker_config locale [value]

Faker Seed (faker_config.seed)

  • Environment variable: TARGET_S3TABLES_FAKER_CONFIG_SEED

Value to seed the Faker generator for deterministic output: https://faker.readthedocs.io/en/master/#seeding-the-generator


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set faker_config seed [value]

Enable Schema Flattening (flattening_enabled)

  • Environment variable: TARGET_S3TABLES_FLATTENING_ENABLED

'True' to enable schema flattening and automatically expand nested properties.


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set flattening_enabled [value]

Max Flattening Depth (flattening_max_depth)

  • Environment variable: TARGET_S3TABLES_FLATTENING_MAX_DEPTH

The max depth to flatten schemas.


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set flattening_max_depth [value]

Load Method (load_method)

  • Environment variable: TARGET_S3TABLES_LOAD_METHOD
  • Default Value: append-only

The method to use when loading data into the destination. append-only will always write all input records whether that records already exists or not. upsert will update existing records and insert new records. overwrite will delete all existing records and insert all input records.


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set load_method [value]

User Stream Map Configuration (stream_map_config)

  • Environment variable: TARGET_S3TABLES_STREAM_MAP_CONFIG

User-defined config values to be used within map expressions.


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set stream_map_config [value]

Stream Maps (stream_maps)

  • Environment variable: TARGET_S3TABLES_STREAM_MAPS

Config object for stream maps capability. For more information check out Stream Maps.


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set stream_maps [value]

Validate Records (validate_records)

  • Environment variable: TARGET_S3TABLES_VALIDATE_RECORDS
  • Default Value: true

Whether to validate the schema of the incoming streams.


Configure this setting directly using the following Meltano command:

meltano config target-s3tables set validate_records [value]

Something missing?

This page is generated from a YAML file that you can contribute changes to.

Edit it on GitHub!

Looking for help?

If you're having trouble getting the target-s3tables loader to work, look for an existing issue in its repository, file a new issue, or join the Meltano Slack community and ask for help in the
#plugins-general
channel.

Install

meltano add target-s3tables

Maintenance Status

  • Maintenance Status
  • Built with the Meltano SDK

Repo

https://github.com/amaingot/target-s3tables
  • Stars
  • Forks
  • Last Commit Date
  • Open Issues
  • Open PRs
  • Contributors
  • License

Maintainer

  • Alex Maingot

Keywords

  • meltano_sdk