Skip to content

Commit

Permalink
Support Nebula Graph
Browse files Browse the repository at this point in the history
  • Loading branch information
wey-gu committed May 13, 2022
1 parent 1c53c71 commit 328e923
Showing 1 changed file with 59 additions and 0 deletions.
59 changes: 59 additions & 0 deletions rfcs/048-support-nebula-graph-as-backend-storage.md
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.

0 comments on commit 328e923

Please sign in to comment.