Skip to main content

DRB Iceberg add-on

Project description

drb-iceberg

Purpose: Turn a product topic's iceberg: ontological configuration into a declarative IcebergMapping that describes table name, partitions, column extractors, and derived sub-tables. The add-on performs planning only — no Iceberg catalog I/O.

Contract

IcebergAddon.apply(node, topic=None, **kwargs) returns an IcebergMapping object containing:

  • table: main table name (string)
  • ingestible: ingestion enabled (boolean)
  • ingest_priority: optional priority level (int or None)
  • identifier: unique key extractor (XQuery-based, not executed)
  • partitions: list of partition field definitions
  • columns: column schema with row extractors (delegated to drb-metadata)
  • derived: list of derived (sub-)table definitions

The mapping is declarative: extractors are not executed by the add-on. A separate consumer processes the plan and executes row extraction/table writes.

Dependencies

  • drb>=2.2,<3
  • drb-metadata>=1.4,<2 — provides column extraction via extract_for_class(class_uri, graph)

The iceberg: vocabulary

Attached to a product topic at namespace http://www.gael.fr/iceberg#:

Term Cardinality Type Meaning
ingestible 1 xs:boolean Enables ingestion for this topic.
targetTable 1 string Main table name, e.g. sentinel1.products.
ingestPriority 0..1 xs:int Ingestion priority.
identifier 1 XQuery Unique key of the product row.
partitionStrategy 0..n PartitionStrategy Partition field/transform/order.
derivedTable 0..n DerivedTable Sub-table definition.

PartitionStrategy

  • partitionField (string) — field name
  • partitionTransform (string: identity, year, month, day, etc.)
  • partitionOrder (xs:int) — sort order

DerivedTable

  • tableName (string) — suffix appended to main table with a dot
  • entityListExtractor (XQuery) — yields the list of row nodes
  • entityClass (resource) OR entityMetadataExtractor (XQuery) — column source (entityClass wins if both present)
  • entityIdentifier (XQuery) — unique key per row

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

drb_iceberg-0.2.0.tar.gz (27.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

drb_iceberg-0.2.0-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file drb_iceberg-0.2.0.tar.gz.

File metadata

  • Download URL: drb_iceberg-0.2.0.tar.gz
  • Upload date:
  • Size: 27.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for drb_iceberg-0.2.0.tar.gz
Algorithm Hash digest
SHA256 59e7cbddc881dfc0b1a7d940b7b7ab01d18178e21f8c00b92490055eeb1b4875
MD5 7378f62cff008fa2dba38488f2741d77
BLAKE2b-256 71a745ca99ffc8c7464fc16605a8661a659f380445ce2ddb09e22667b27f2a65

See more details on using hashes here.

File details

Details for the file drb_iceberg-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: drb_iceberg-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 8.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for drb_iceberg-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 440a8e28420cd56762cc0d201c69bd1fdd1103a3ef55d58dbdee3ce6915f2968
MD5 daf73c3d97639a81527088caf9d42eaf
BLAKE2b-256 9237cbee9ee47b89afa47f7bba532c5f1fef61411ebd0a30dcf4362288bb76a8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page