-
Notifications
You must be signed in to change notification settings - Fork 19
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
59 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
- Feature Name: Support Nebula Graph | ||
- Start Date: 2022-04-16 | ||
- RFC PR: [amundsen-io/rfcs#0000](https://github.com/amundsen-io/rfcs/pull/0000) (after opening the RFC PR, update this with a link to it and update the file name) | ||
- Amundsen Issue: [amundsen-io/amundsen#1816](https://github.com/amundsen-io/amundsen/issues/1816) | ||
|
||
# Nebula Graph Support | ||
|
||
## Summary | ||
|
||
The support includes the Nebula Graph data builder and a new proxy for Nebula Graph in metadata service. | ||
|
||
## Motivation | ||
|
||
Metadata can be published into Nebula Graph from Amundsen databuilder now and this RFC is going to make metadata retrieval API work for Nebula Graph in metadata service. | ||
|
||
## Guide-level Explanation (aka Product Details) | ||
|
||
The goal of this RFC is to add additional loaders, publishers, and serializers to the library suite so that Nebula Graph is supported. | ||
|
||
## UI/UX-level Explanation | ||
|
||
N/A | ||
|
||
## Reference-level Explanation (aka Technical Details) | ||
|
||
To support Nebula Graph in metadata service, a new proxy for Nebula Graph is added. | ||
|
||
To support Nebula Graph in the databuilder, several new components are added: | ||
|
||
- Nebula Extractor | ||
- Nebula Search Data Extractor | ||
- Nebula CSV Loader | ||
- Nebula CSV Publisher | ||
- Nebula Serializer | ||
- Nebula Sample Data Loader | ||
|
||
They worked quite similarly to those for Neo4j(it even speaks a dialect of OpenCypher) but for one thing: Nebula is not schemaless like Neo4j, that is, a lable(named tag) or a edge type should be created before its referred in a query. | ||
|
||
Instead of maintaining versioned schema by user(with extra interfaces introduced), the poposed design is to parse the schema from data being published, do schema check and DDL change when needed automatically, where the schema information will be in single source of truth: the data model of the databuilder. | ||
|
||
## Drawbacks | ||
|
||
The RFC adds support for another datastore which brings in additional components and increases the code size of the repo. | ||
|
||
## Alternatives | ||
|
||
For the schema auto adaptation, one alternative is to add an extra interface/utility to manage Nebula Graph schema. | ||
|
||
## Prior art | ||
|
||
N/A | ||
|
||
## Unresolved questions | ||
|
||
N/A | ||
|
||
## Future possibilities | ||
|
||
None so far. |