Skip to content
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

feat: connector for Neo4j #11526

Merged
merged 70 commits into from
Dec 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
4e91997
feat: connector for Neo4j
keith-fullsight Oct 3, 2024
d4e3d1a
Merge branch 'master' into feat(ingestion/neo4j)
keith-fullsight Oct 8, 2024
53c2463
feat: connector for Neo4j
keith-fullsight Oct 10, 2024
bbccdca
Merge branch 'master' into feat(ingestion/neo4j)
k-bartlett Oct 10, 2024
d02b3c1
feat: connector for Neo4j
keith-fullsight Oct 10, 2024
cbcfa2f
feat: connector for Neo4j
keith-fullsight Oct 10, 2024
bc4cfcf
feat: connector for Neo4j
keith-fullsight Oct 11, 2024
d8ad4bd
Merge branch 'master' into feat(ingestion/neo4j)
k-bartlett Oct 11, 2024
e95d403
Merge branch 'datahub-project:master' into feat(ingestion/neo4j)
k-bartlett Oct 11, 2024
bff830a
feat: connector for Neo4j
keith-fullsight Oct 18, 2024
94e294e
Merge branch 'master' into feat(ingestion/neo4j)
keith-fullsight Oct 18, 2024
28614af
Merge branch 'master' into feat(ingestion/neo4j)
k-bartlett Oct 18, 2024
5ac8fd7
feat: connector for Neo4j
keith-fullsight Oct 21, 2024
c31a787
Merge remote-tracking branch 'datahub_fork/feat(ingestion/neo4j)' int…
keith-fullsight Oct 21, 2024
9360ce6
feat: connector for Neo4j
keith-fullsight Oct 21, 2024
3153e6a
feat(ingest/transformer/domain): Add support for on conflict do nothi…
asikowitz Oct 18, 2024
20aa223
fix(ingest/looker): Remove bad imports from looker_common (#11663)
feldjay Oct 18, 2024
c4a8001
feat(ingest/looker): include project name in model/explore properties…
hsheth2 Oct 18, 2024
12abda4
feat(ingest/fivetran): protect against high sync volume (#11589)
hsheth2 Oct 18, 2024
bda79bd
feat(sdk):platform-resource - complex queries (#11675)
shirshanka Oct 19, 2024
03c9de6
fix(docs): fix businessattributes doc (#11653)
deepgarg-visa Oct 20, 2024
9b82a7b
feat(ingest/fivetran): add safeguards on table/column lineage (#11674)
hsheth2 Oct 21, 2024
ed7c368
fix(ui): show DataHub logo for DataHub sources in ingestion souces li…
Masterchen09 Oct 21, 2024
44fad3a
Merge branch 'master' into feat(ingestion/neo4j)
k-bartlett Oct 21, 2024
bde184b
Merge branch 'master' into feat(ingestion/neo4j)
k-bartlett Oct 22, 2024
067ff52
Merge branch 'master' into feat(ingestion/neo4j)
k-bartlett Oct 22, 2024
aea2174
Merge branch 'master' into feat(ingestion/neo4j)
k-bartlett Oct 22, 2024
89b552d
Merge branch 'master' into feat(ingestion/neo4j)
k-bartlett Oct 23, 2024
ef7390a
Merge remote-tracking branch 'origin/master'
keith-fullsight Oct 23, 2024
c0e667d
Merge remote-tracking branch 'datahub_fork/feat(ingestion/neo4j)' int…
keith-fullsight Oct 23, 2024
b6ed703
Merge branch 'master' into feat(ingestion/neo4j)
k-bartlett Oct 23, 2024
7de1f8c
Merge remote-tracking branch 'origin/master'
keith-fullsight Oct 28, 2024
468cadf
Merge branch 'master' into feat(ingestion/neo4j)
keith-fullsight Oct 28, 2024
888b33c
Merge branch 'master' into feat(ingestion/neo4j)
k-bartlett Oct 30, 2024
cc3aaeb
Merge remote-tracking branch 'datahub_fork/feat(ingestion/neo4j)' int…
keith-fullsight Oct 30, 2024
801dac0
Merge remote-tracking branch 'origin/master'
keith-fullsight Nov 5, 2024
e3410d4
Merge branch 'master' into feat(ingestion/neo4j)
keith-fullsight Nov 5, 2024
1e274ae
Merge branch 'master' into feat(ingestion/neo4j)
k-bartlett Nov 5, 2024
25217d7
Merge remote-tracking branch 'datahub_fork/feat(ingestion/neo4j)' int…
keith-fullsight Nov 13, 2024
a5c6299
Merge remote-tracking branch 'origin/master'
keith-fullsight Nov 13, 2024
fbad716
Merge branch 'master' into feat(ingestion/neo4j)
keith-fullsight Nov 13, 2024
1fa7f6d
Merge remote-tracking branch 'origin/master'
keith-fullsight Nov 19, 2024
6bcf5a9
feat: connector for Neo4j
keith-fullsight Nov 19, 2024
01095db
Merge remote-tracking branch 'origin/master'
keith-fullsight Nov 19, 2024
b4499d8
Merge branch 'master' into feat(ingestion/neo4j)
keith-fullsight Nov 19, 2024
aadd71a
feat: connector for Neo4j
keith-fullsight Nov 21, 2024
f8ebd1f
Merge branch 'master' into feat(ingestion/neo4j)
k-bartlett Nov 21, 2024
1bb0005
Merge remote-tracking branch 'origin/master'
keith-fullsight Nov 21, 2024
6f94c45
Merge branch 'master' into feat(ingestion/neo4j)
keith-fullsight Nov 21, 2024
ca025bc
Merge branch 'master' into feat(ingestion/neo4j)
k-bartlett Nov 22, 2024
4a07124
Merge remote-tracking branch 'datahub_fork/feat(ingestion/neo4j)' int…
keith-fullsight Nov 22, 2024
d18e329
feat: connector for Neo4j
keith-fullsight Nov 25, 2024
92d9d65
feat: connector for Neo4j
keith-fullsight Nov 26, 2024
872a4ac
feat: connector for Neo4j
keith-fullsight Nov 26, 2024
c4f6953
feat: connector for Neo4j
keith-fullsight Nov 26, 2024
a818783
feat: connector for Neo4j
keith-fullsight Nov 26, 2024
4212e47
feat: connector for Neo4j
keith-fullsight Nov 26, 2024
b163e16
feat: connector for Neo4j
keith-fullsight Nov 26, 2024
4641c9f
feat: connector for Neo4j
keith-fullsight Nov 26, 2024
6aed7c7
feat: connector for Neo4j
keith-fullsight Nov 26, 2024
f71e7be
feat: connector for Neo4j
keith-fullsight Nov 26, 2024
fc0d90f
feat: connector for Neo4j
keith-fullsight Nov 26, 2024
ea69856
Merge branch 'master' into feat(ingestion/neo4j)
k-bartlett Nov 26, 2024
aee4ca5
feat: connector for Neo4j
keith-fullsight Nov 26, 2024
54cbb83
Merge branch 'master' into feat(ingestion/neo4j)
k-bartlett Nov 27, 2024
71cfb7b
Merge branch 'master' into feat(ingestion/neo4j)
k-bartlett Nov 27, 2024
01dfc26
feat: connector for Neo4j
keith-fullsight Nov 29, 2024
94f104d
Merge remote-tracking branch 'origin/master'
keith-fullsight Nov 29, 2024
bf888c0
Merge branch 'master' into feat(ingestion/neo4j)
keith-fullsight Nov 29, 2024
2c47b19
Merge remote-tracking branch 'datahub_fork/feat(ingestion/neo4j)' int…
keith-fullsight Nov 29, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions datahub-web-react/src/app/ingest/source/builder/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ import sigmaLogo from '../../../../images/sigmalogo.png';
import sacLogo from '../../../../images/saclogo.svg';
import cassandraLogo from '../../../../images/cassandralogo.png';
import datahubLogo from '../../../../images/datahublogo.png';
import neo4j from '../../../../images/neo4j.png';

export const ATHENA = 'athena';
export const ATHENA_URN = `urn:li:dataPlatform:${ATHENA}`;
Expand Down Expand Up @@ -137,6 +138,8 @@ export const DATAHUB_GC = 'datahub-gc';
export const DATAHUB_LINEAGE_FILE = 'datahub-lineage-file';
export const DATAHUB_BUSINESS_GLOSSARY = 'datahub-business-glossary';
export const DATAHUB_URN = `urn:li:dataPlatform:${DATAHUB}`;
export const NEO4J = 'neo4j';
export const NEO4J_URN = `urn:li:dataPlatform:${NEO4J}`;

export const PLATFORM_URN_TO_LOGO = {
[ATHENA_URN]: athenaLogo,
Expand Down Expand Up @@ -180,6 +183,7 @@ export const PLATFORM_URN_TO_LOGO = {
[SAC_URN]: sacLogo,
[CASSANDRA_URN]: cassandraLogo,
[DATAHUB_URN]: datahubLogo,
[NEO4J_URN]: neo4j,
};

export const SOURCE_TO_PLATFORM_URN = {
Expand Down
8 changes: 8 additions & 0 deletions datahub-web-react/src/app/ingest/source/builder/sources.json
Original file line number Diff line number Diff line change
Expand Up @@ -325,5 +325,13 @@
"description": "Ingest databases and tables from any Iceberg catalog implementation",
"docsUrl": "https://datahubproject.io/docs/generated/ingestion/sources/iceberg",
"recipe": "source:\n type: \"iceberg\"\n config:\n env: dev\n # each thread will open internet connections to fetch manifest files independently, \n # this value needs to be adjusted with ulimit\n processing_threads: 1 \n # a single catalog definition with a form of a dictionary\n catalog: \n demo: # name of the catalog\n type: \"rest\" # other types are available\n uri: \"uri\"\n s3.access-key-id: \"access-key\"\n s3.secret-access-key: \"secret-access-key\"\n s3.region: \"aws-region\"\n profiling:\n enabled: false\n"
},
{
"urn": "urn:li:dataPlatform:neo4j",
"name": "neo4j",
"displayName": "Neo4j",
"description": "Import Nodes and Relationships from Neo4j.",
"docsUrl": "https://datahubproject.io/docs/generated/ingestion/sources/neo4j/",
"recipe": "source:\n type: 'neo4j'\n config:\n uri: 'neo4j+ssc://host:7687'\n username: 'neo4j'\n password: 'password'\n env: 'PROD'\n\nsink:\n type: \"datahub-rest\"\n config:\n server: 'http://localhost:8080'"
}
]
Binary file added datahub-web-react/src/images/neo4j.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
20 changes: 20 additions & 0 deletions metadata-ingestion/docs/sources/neo4j/neo4j.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
## Integration Details

<!-- Plain-language description of what this integration is meant to do. -->
<!-- Include details about where metadata is extracted from (ie. logs, source API, manifest, etc.) -->
Neo4j metadata will be ingested into DataHub using
`CALL apoc.meta.schema() YIELD value UNWIND keys(value) AS key RETURN key, value[key] AS value;`
The data that is returned will be parsed
and will be displayed as Nodes and Relationships in DataHub. Each object will be tagged with describing what kind of DataHub
object it is. The defaults are 'Node' and 'Relationship'. These tag values can be overwritten in the recipe.



## Metadata Ingestion Quickstart

### Prerequisites

In order to ingest metadata from Neo4j, you will need:

* Neo4j instance with APOC installed

12 changes: 12 additions & 0 deletions metadata-ingestion/docs/sources/neo4j/neo4j_recipe.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
source:
Copy link
Collaborator

Choose a reason for hiding this comment

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

Can you also please follow Step 9 here and add neo4j as platform ? If you can follow Step 10 as well, that would be great but not necessary.

type: 'neo4j'
config:
uri: 'neo4j+ssc://host:7687'
username: 'neo4j'
password: 'password'
env: 'PROD'

sink:
type: "datahub-rest"
config:
server: 'http://localhost:8080'
3 changes: 3 additions & 0 deletions metadata-ingestion/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -525,6 +525,7 @@
"qlik-sense": sqlglot_lib | {"requests", "websocket-client"},
"sigma": sqlglot_lib | {"requests"},
"sac": sac,
"neo4j": {"pandas", "neo4j"},
}

# This is mainly used to exclude plugins from the Docker image.
Expand Down Expand Up @@ -673,6 +674,7 @@
"sigma",
"sac",
"cassandra",
"neo4j",
]
if plugin
for dependency in plugins[plugin]
Expand Down Expand Up @@ -792,6 +794,7 @@
"sigma = datahub.ingestion.source.sigma.sigma:SigmaSource",
"sac = datahub.ingestion.source.sac.sac:SACSource",
"cassandra = datahub.ingestion.source.cassandra.cassandra:CassandraSource",
"neo4j = datahub.ingestion.source.neo4j.neo4j_source:Neo4jSource",
],
"datahub.ingestion.transformer.plugins": [
"pattern_cleanup_ownership = datahub.ingestion.transformer.pattern_cleanup_ownership:PatternCleanUpOwnership",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ class DatasetSubTypes(StrEnum):
SAC_MODEL = "Model"
SAC_IMPORT_DATA_MODEL = "Import Data Model"
SAC_LIVE_DATA_MODEL = "Live Data Model"
NEO4J_NODE = "Neo4j Node"
NEO4J_RELATIONSHIP = "Neo4j Relationship"

# TODO: Create separate entity...
NOTEBOOK = "Notebook"
Expand Down
Empty file.
Loading
Loading