-
Notifications
You must be signed in to change notification settings - Fork 4.8k
🎉 New Destination: NebulaGraph #66799
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
👋 Welcome to Airbyte!Thank you for your contribution from GrayFluex/airbyte! We're excited to have you in the Airbyte community. Helpful Resources
PR Slash CommandsAs needed or by request, Airbyte Maintainers can execute the following slash commands on your PR:
If you have any questions, feel free to ask in the PR comments or join our Slack community. Tips for Working with CI
|
@GrayFluex hi, thanks for your contribution! Could you please sign CLA before we review your PR? |
@DanyloGL hi , thanks for the reminder. I've just signed the CLA.👌 |
/format-fix
|
What
NebulaGraph is a high-performance, open-source distributed graph database. It excels at storing and querying large-scale graph data with millisecond latency. Airbyte lacks native support for syncing data to NebulaGraph, which prevents users within the graph database ecosystem from leveraging Airbyte's extensive library of sources to populate their graphs.
This PR introduces a new destination connector for NebulaGraph to bridge this gap, enabling seamless data integration from any Airbyte source into a NebulaGraph instance.
How
This PR implements the destination-nebulagraph, a new destination connector that writes data to NebulaGraph.
Key features of this implementation include:
Connection: Establishes a connection to a NebulaGraph instance using the provided host, port, username, and password.
Schema Mapping: Maps each Airbyte stream to a corresponding NebulaGraph Tag or Vertex. The schema of the Tag is automatically inferred from the stream's properties.
Data Writing: Converts Airbyte records into NebulaGraph vertices and inserts them using nGQL INSERT VERTEX statements. It handles data type conversions between Airbyte's JSON schema types and NebulaGraph's native data types.
Core Operations: Implements the required spec, check, and write operations.
Acceptance Tests: Passes all relevant Connector Acceptance Tests (CAT), ensuring reliability and correctness.
Review guide
For an efficient review, I recommend starting with the following files:
airbyte-integrations/connectors/destination-nebulagraph/src/main/resources/spec.json:
To understand the user-facing configuration.
airbyte-integrations/connectors/destination-nebulagraph/src/main/java/io/airbyte/integrations/destination/nebulagraph/NebulaGraphDestination.java:
The main entry point for the connector.
airbyte-integrations/connectors/destination-nebulagraph/src/main/java/io/airbyte/integrations/destination/nebulagraph/NebulaGraphRecordConsumer.java:
Contains the core logic for building and executing nGQL queries to write data.
airbyte-integrations/connectors/destination-nebulagraph/src/test-integration/java/io/airbyte/integrations/destination/nebulagraph/NebulaGraphDestinationAcceptanceTest.java:
To see the integration test setup and confirm it passes the standard test suite.
User Impact
Users can now seamlessly sync data from any supported Airbyte source into their NebulaGraph databases.
They can configure the connection to their NebulaGraph instance (specifying host, port, user, password, and graph space) and map data streams to be written as Vertices (Tags) within their graph.
There are no known negative side effects, as this is a new, self-contained connector.
-->
Can this PR be safely reverted and rolled back?