docs: DOC-1345: add Java and Python client input tables guides#8108
docs: DOC-1345: add Java and Python client input tables guides#8108margaretkennedy wants to merge 2 commits into
Conversation
Adds comprehensive documentation for streaming data to Deephaven from external Java and Python clients using input tables. Includes complete examples, resource management patterns, and cross-references to related documentation.
There was a problem hiding this comment.
Pull request overview
This PR adds new end-to-end documentation for streaming data into Deephaven from external Java and Python clients using input tables, and wires the new guides into the existing docs navigation with cross-references from the server-side input table docs and client quickstarts.
Changes:
- Added new “client input tables” guides for Python (
pydeephaven) and Java (Java client + FlightSession). - Updated Python and Groovy sidebars plus related pages to cross-link server-side vs client-side ingestion paths.
- Updated Python docs snapshot JSONs to reflect the new quickstart location.
Reviewed changes
Copilot reviewed 22 out of 22 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| docs/python/snapshots/f9d0607d8f024d18180fc66c458e3c4e.json | Snapshot updated to point at new Python client quickstart path |
| docs/python/snapshots/f62c58b20622e20076a59e0bd3e89f38.json | New snapshot for Python client quickstart path |
| docs/python/snapshots/f41c052be43fef0c663477dc0939c334.json | Snapshot updated to point at new Python client quickstart path |
| docs/python/snapshots/d80ea5684083dbce71848f894d37345c.json | Snapshot updated to point at new Python client quickstart path |
| docs/python/snapshots/c1562035c4f21f5103d30ef2fcdd3fcf.json | Snapshot updated to point at new Python client quickstart path |
| docs/python/snapshots/9d2a048c69a3ae12ea383fc20086a658.json | Snapshot updated to point at new Python client quickstart path |
| docs/python/snapshots/92fb301790d28202db6458746a482a34.json | Snapshot updated to point at new Python client quickstart path |
| docs/python/snapshots/7e3f9a2b251bcf387cdd992dcbc7249a.json | Snapshot updated to point at new Python client quickstart path |
| docs/python/snapshots/4ff01e86649ec715a9ad05a587b06dcd.json | Snapshot updated to point at new Python client quickstart path |
| docs/python/snapshots/379a3929ff450ceaa51c7c7adbaedc39.json | Snapshot updated to point at new Python client quickstart path |
| docs/python/snapshots/36769b854e05e8a8eea82db1cd3f1d94.json | Snapshot updated to point at new Python client quickstart path |
| docs/python/snapshots/292d32d9d73dcb53e8e75c5ebeb59c56.json | Snapshot updated to point at new Python client quickstart path |
| docs/python/snapshots/153342b0e037588267e43210da060e16.json | Snapshot updated to point at new Python client quickstart path |
| docs/python/snapshots/0bb611acbe44c9b1c6688c767c0a1d16.json | Snapshot updated to point at new Python client quickstart path |
| docs/python/sidebar.json | Adds new Python “Stream data with input tables” nav entry |
| docs/python/how-to-guides/input-tables.md | Adds tip linking server-side input tables guide to the new client-side guide |
| docs/python/how-to-guides/client-input-tables.md | New Python guide describing streaming pattern, memory management, and input table types |
| docs/python/getting-started/pyclient-quickstart.md | Adds quickstart section linking to client input tables guide and shows minimal streaming snippet |
| docs/groovy/sidebar.json | Adds new Groovy/Java docs “Stream data with input tables” nav entry |
| docs/groovy/how-to-guides/java-client.md | Adds cross-reference to new Java client input tables guide |
| docs/groovy/how-to-guides/java-client-input-tables.md | New Java guide describing streaming pattern, examples, and resource management |
| docs/groovy/how-to-guides/input-tables.md | Adds tip linking server-side input tables guide to the new Java client guide |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| --- | ||
| title: Stream data from a Python client with input tables | ||
| sidebar_label: Client input tables | ||
| --- |
There was a problem hiding this comment.
I am not sure the title accurately captures the intended use of input tables. The append-only InputTable can certainly be used to streaming data from the client to the server programmatically, but I am not sure it is something we should promote. We probably need to cover the use case of keyed InputTable as well.
| // Manual approach (use FlightSession.addToInputTable instead when possible) | ||
| ScopeId scopeId = new ScopeId("device_status"); | ||
| ExportId exportId = flight.putExportManual(newTable, allocator); | ||
| try { | ||
| flight.session().addToInputTable(scopeId, exportId).get(); | ||
| } finally { | ||
| flight.release(exportId); | ||
| } |
| ```groovy syntax | ||
| dependencies { | ||
| implementation 'io.deephaven:deephaven-java-client-session:0.37.0' | ||
| implementation 'io.deephaven:deephaven-java-client-flight:0.37.0' | ||
| implementation 'io.deephaven:deephaven-qst:0.37.0' | ||
| } |
| TableSpec inputTableSpec = InMemoryKeyBackedInputTable.of( | ||
| header, java.util.List.of("DeviceId")); | ||
| TableHandle inputTableHandle = flight.session().execute(inputTableSpec); | ||
|
|
||
| // Publish so it's visible in the UI (check http://localhost:10000) | ||
| flight.session().publish("device_status", inputTableHandle).get(5, TimeUnit.SECONDS); | ||
|
|
||
| // Close the handle - the server-side table persists via the query scope | ||
| inputTableHandle.close(); | ||
|
|
||
| // Reference the table via its scope name | ||
| ScopeId scopeId = new ScopeId("device_status"); |
Adds comprehensive documentation for streaming data to Deephaven from external Java and Python clients using input tables. Includes complete examples, resource management patterns, and cross-references to related documentation.