Skip to content

docs: DOC-1345: add Java and Python client input tables guides#8108

Draft
margaretkennedy wants to merge 2 commits into
deephaven:mainfrom
margaretkennedy:doc-1345
Draft

docs: DOC-1345: add Java and Python client input tables guides#8108
margaretkennedy wants to merge 2 commits into
deephaven:mainfrom
margaretkennedy:doc-1345

Conversation

@margaretkennedy

Copy link
Copy Markdown
Contributor

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.

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.
@github-actions

github-actions Bot commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

Deploying docs previews for 78aadcb (available for 14 days)

Python
Groovy

@margaretkennedy margaretkennedy marked this pull request as draft June 3, 2026 20:29
@margaretkennedy margaretkennedy added documentation Improvements or additions to documentation and removed DocumentationNeeded labels Jun 3, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread docs/groovy/how-to-guides/java-client-input-tables.md Outdated
Comment thread docs/groovy/how-to-guides/java-client-input-tables.md Outdated
Comment thread docs/groovy/how-to-guides/java-client-input-tables.md Outdated
Comment thread docs/groovy/how-to-guides/java-client-input-tables.md Outdated
Comment thread docs/groovy/how-to-guides/java-client-input-tables.md Outdated
Comment on lines +1 to +4
---
title: Stream data from a Python client with input tables
sidebar_label: Client input tables
---

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@cpwright cpwright requested a review from devinrsmith June 5, 2026 13:53

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 22 out of 22 changed files in this pull request and generated 3 comments.

Comment on lines +223 to +230
// 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);
}
Comment on lines +24 to +29
```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'
}
Comment on lines +97 to +108
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");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants