Skip to content

M3-22: ingest real Chongqing feature slice into Iceberg #40

Description

@zhouning

Problem

M3-21 binds the real Chongqing cultural-district ResourceVersion to a JDBC catalog backed by cross-node MinIO, but deliberately creates only empty Iceberg metadata. It does not prove that content-bound real feature rows can be ingested, spatially validated, replayed without duplicate commits, or read back from the object-store-backed table.

Goal

Ingest the bounded 20-feature Chongqing cultural-district slice into an isolated JDBC/S3 Iceberg table through an explicitly authorized Spark/Sedona job. Bind every row set to the existing immutable ResourceVersion, verify spatial quality and direct object-store state, and prove exact replay produces no second snapshot.

Scope

  • Require the checked M3-21 promotion evidence and the same ResourceVersion/content SHA.
  • Read the source Shapefile only from an explicit local CLI path; do not commit paths or feature payloads.
  • Canonicalize BSM, PolygonZ WKB, EPSG:4490 and bbox columns into a path-free row-set fingerprint.
  • Create a bounded JDBC/S3 target and authorize one Spark/Sedona ingestion plan before mutation.
  • Validate WKB parsing, geometry validity, SRID, positive area, uniqueness and bbox consistency with Sedona.
  • Require first execution to append exactly 20 rows and create exactly one snapshot.
  • Require immediate replay to use exact table readback and produce no mutation or new snapshot.
  • Inspect Parquet, manifest and Iceberg metadata directly through S3.
  • Emit sanitized evidence, ADR, Platform Truth/System-of-Record updates and CI validation.

Non-Goals

  • Full Chongqing multi-source ingestion.
  • Committing source data, feature geometry or absolute local paths.
  • Claiming production object storage, protected workload identity, TLS/OIDC, full Spark/Flink conformance or production readiness.
  • Persisting the promotion or ingestion result into a production GDA Control deployment.

Acceptance Criteria

  • The source bundle and canonical row set bind the M3-21 ResourceVersion/content SHA.
  • Exactly 20 unique non-null BSM values and 20 valid PolygonZ geometries are accepted.
  • Spark/Sedona writes one append snapshot to the expected JDBC/S3 table.
  • Table readback proves exact row fingerprints, SRID, validity, bbox and positive area.
  • Replay is no_op with unchanged snapshot, rows, files and row-set fingerprint.
  • Direct S3 inventory contains referenced Parquet, manifest and metadata objects with no unexpected prefix.
  • Runtime credentials, source paths and feature payloads are absent from evidence and Git.
  • Temporary namespace, PVCs, port-forwards and input ConfigMap are cleaned.

Implementation

Status

in_review

Execution Gate

allowed

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions