[Client] Add the primary-key table bulk-load client SDK

Aperta
#4,225 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 2 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
28/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
java

Direzione di ricerca

Parti dalla connessione Fluss e dal protocollo di bulk-load lato server, quindi segui gli entry point Begin, GetInProgress, Commit e Abort. Esamina come sono rappresentati le sessioni di build, i bucket writer, i file di snapshot, i manifest e i retry dei commit; il lavoro è completo quando l’SDK pubblico copre i workflow locali e distribuiti elencati, mantenendo il contesto di build serializzabile e chiudendo correttamente le risorse.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Search before asking
  • I searched in the issues and found nothing similar.
Description

Provide a public client SDK over the server-side bulk-load protocol.

The SDK should hide RPC messages, manifest assembly, snapshot file handling,
and Commit retry details while supporting both single-process builders and
distributed execution engines.

Scope
  • Expose BulkLoad through the Fluss connection.
  • Add a client for Begin, GetInProgress, Commit, and Abort.
  • Return an immutable and serializable build context from Begin.
  • Add openBuildSession as the entry point for local build resources.
  • Create bucket writers through the build session.
  • Route and validate rows against the frozen target metadata.
  • Deduplicate primary-key rows locally, with the last row for a key winning.
  • Build ordinary Fluss KV snapshot files for each bucket.
  • Support an explicit log end offset when required by the caller.
  • Assemble and publish the complete manifest internally.
  • Retry Commit within a caller-provided await budget when the outcome is
    retriable or unknown.
  • Close all writers still owned by a build session when the session is closed.
  • Keep credentials and process-local resources out of the serializable build
    context.
Willingness to contribute
  • I'm willing to submit a PR!
Lingua principale
Java
Stelle
2.2k
Fork
663
Merge medio
2g 20h
PR unite (30g)
136

Preparare l'ambiente

  • Nessun Dockerfile né file Docker Compose
  • Ha un modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di apache/fluss

Tutte le issue di apache/fluss

Issue simili

Altre issue su Java

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.