aws / graph-notebook

Library extending Jupyter notebooks to integrate with Apache TinkerPop, openCypher, and RDF SPARQL.
https://github.com/aws/graph-notebook
Apache License 2.0
733 stars 166 forks source link

Neptune Streams integration #188

Closed michaelnchin closed 3 years ago

michaelnchin commented 3 years ago

Is your feature request related to a problem? Please describe.

Several Neptune customers have asked about ways to access Neptune Streams data on their connected cluster. This is commonly desired when they are also making use of Neptune's Full-Text Search integration with Elasticsearch.

For now, customers can access Streams data from graph-notebook by running a curl command from a %%bash cell to call the Streams API. However, we would like to make Streams access easier than this, and more consistent with how similar data (i.e. query results) are retrieved and displayed in the notebook.

An existing Neptune Stream Poller Jupyter notebook widget, built by @iansrobinson, has been open sourced here: https://github.com/aws-samples/amazon-neptune-samples/blob/master/gremlin/neptune-streams/lambda/neptune-streams-demo/neptune_python_utils/streams.py

Examples of usage can be seen here: https://aws.amazon.com/blogs/database/capture-graph-changes-using-neptune-streams/

Describe the solution you'd like

Implement a new %stream_viewer magic command to retrieve the Streams data from the connected Neptune cluster, and output the data as a table widget. The widget should contain interactable elements for the user to scroll through or otherwise change the view of the streams data. We should also have a multi-tab view in the widget to give a view of the raw data from the stream.

michaelnchin commented 3 years ago

Added in https://github.com/aws/graph-notebook/pull/191.