Published

C·0 · EL CENSO DEL TUBO — qué sabe hacer la ingesta antes de suprimirla

Connect any source, model it as an ontology, transform it, and operationalize it, analytics, automation and machine learning, under one governed, self-hostable roof. --- Most teams stitch the...

C·0 · EL CENSO DEL TUBO — qué sabe hacer la ingesta antes de suprimirla

⚙️ ESTE DOCUMENTO SE GENERA

Salida de scripts/ingesta/c0-censo-del-tubo.ts. No lo edites: los cambios se
pierden. El inventario y los veredictos se declaran en ese script (versionados y
revisables); el uso se mide contra la base en cada corrida.

⛔ El tipo Veredicto no admite «pendiente de mirar»: cada capacidad sale con
destino, o el censo no compila. Ése es el gate de C·0.

14 capacidades · 4 CUBRE · 7 POSPONE · 3 ABANDONA


1 · El inventario, con destino

✅ CUBRE (4)

capacidaddónde vivefasepor qué
Lectura completa de una tabla (full_scan)base-polling-worker.ts:577C·5Es exactamente la copia snapshot que C·5 entrega: leer el origen entero y materializar el destino.
Streaming por lotes con techo de RAMwriteDatasetStreaming · fetchers v7C·5El INSERT por lotes de C·5 es el mismo patrón: la RAM la acota el lote, no la tabla. Sin esto una tabla grande no cabe.
Modo REPLACE (upsert + limpiar lo que sobra)base-polling-worker.ts:1419C·5Una copia repetida tiene que ser idempotente. Sin REPLACE, ejecutar dos veces duplica.
Esquema y tipos derivados del origenDatasetWriter · datasets.schema“C·5El destino nace con el esquema del origen; sin esto no hay createTable posible.

⏭️ POSPONE (7)

capacidaddónde vivefasepor qué
Elección AUTOMÁTICA de estrategia (timestamp › sequence › full_scan)base-polling-worker.ts:458-577incrementalSólo tiene sentido cuando hay incremental: elegir cursor para una copia completa no decide nada. §7 del approach deja el sitio (la lectura admite condición).
Estrategias incrementales timestamp y sequence (cursor)base-polling-worker.ts:565-574incrementalEs el corazón del CDC. Ni Snowflake ni Databricks lo modelan como sentencia — va en su propio approach, no colgado de la copia.
Modo UPSERT (añade y actualiza, no borra)base-polling-worker.ts:19-20incrementalSu par natural es MERGE. §7 del approach exige que la escritura PUEDA ser MERGE aunque C·5 siempre haga append.
Checkpoint y reanudación a mitad de syncbase-polling-worker.ts:667-701incrementalC·5 es todo-o-nada con compensación, que es más simple y más seguro para empezar. §7 pide dejar rastro reanudable aunque nadie lo lea todavía.
Fan-out por rangos de PK (N particiones en paralelo)base-polling-worker.ts:1401 · SYNC_FANOUT_MIN_ROWSincremental⚠️ Es una optimización de VOLUMEN, no una capacidad funcional — pero es la que hace viable una tabla de 500M filas. Posponer no es olvidar: si el volumen aparece antes que el CDC, sube de prioridad.
Programación (un job por sync cuando la credencial toca)scheduler · getSyncFilesByCredential“los dos modosEs el segundo disparador del pilar ③. La sentencia va primero; el planificador ejecuta lo mismo y por eso puede esperar.
Descubrimiento de claves ajenas del origenForeignKey · datasets.foreign_keys“incrementalNo participa en copiar filas: alimenta la UI y el grafo. Se pospone porque su pérdida es visible y reversible, no silenciosa.

⛔ ABANDONA (3)

capacidaddónde vivefasepor qué
Estrategia hashbase-polling-worker.ts:166 (tipo)⭐ Declarada en el tipo y sin implementación que la elija: decidirEstrategia sólo devuelve timestamp/sequence/full_scan. Es vocabulario muerto, y arrastrarlo sería copiar una capacidad que nunca existió.
Estrategia cdc (log de replicación)base-polling-worker.ts:166 (tipo)⚠️ Mismo caso: está en el tipo y nadie la produce. El CDC de verdad se diseñará desde cero contra el estándar (Openflow/Lakeflow hacen snapshot + CDC), no heredando un enum vacío.
Escritura por warehouse-writer (Railway) con warehouse por inquilinoiceberg-native-write.ts · WAREHOUSE_WRITER_URL⛔ Es LA CAUSA de que la ingesta esté rota: pide a Lakekeeper un warehouse por inquilino que dejó de existir con el modelo pool (migración 20261274). Es justo el tubo que C·6 suprime.

2 · El uso REAL, medido

7 syncs activos · 6 datasets en error

Syncs por workspace

workspacesyncs
node-development-25
node-development2

Estrategia declarada en la configuración

estrategiasyncs
(automática)7

⭐ Una estrategia que nadie declara la decide el worker solo. Eso significa que el camino nuevo no hereda una configuración: hereda una DECISIÓN, y esa decisión hay que volver a tomarla explícitamente cuando llegue el incremental.

De dónde vienen los datasets que existen

serviciodatasetsúltimo
postgresql552026-08-16
sql_editor.create_table182026-08-16
transform_path152026-06-18
pipeline_output132026-05-20
postgres72026-05-06
media_set52026-07-06
manual52026-06-15
unstructured_dataset42026-07-06
drive32026-03-06
upload22026-05-06
f2_canary22026-08-06
view12026-07-11

3 · Lo que este censo obliga

  1. Nada de lo marcado CUBRE puede quedarse fuera de C·5 — si al cerrarlo alguna no está, C·5 no está listo, por muy verde que salga la copia.
  2. Lo POSPONE no es opcional: es deuda con nombre. El approach §7 obliga a dejar el sitio (condición en la lectura, MERGE posible, rastro reanudable) para que añadirlas no sea reescribir la copia.
  3. Lo ABANDONA se abandona a propósito y por escrito, que es lo contrario de perderse. Dos de las tres eran vocabulario muerto: estaban en el tipo y nadie las producía.