|
1 | 1 | [[data-modeling-tools]] |
2 | 2 | = Data modeling tools |
3 | | -:description: arrows.app, data importer, visualization tools, schema |
| 3 | +:description: See a list of tools that you can use when designing a data model. |
| 4 | +:page-role: labs-label |
4 | 5 |
|
5 | | -To help you with designing a new graph database structure, the following tools were created: |
| 6 | +//Check Mark |
| 7 | +:check-mark: icon:check[] |
6 | 8 |
|
7 | | -* link:https://neo4j.com/docs/data-importer/current/[Neo4j Data Importer^] |
8 | | -* link:https://neo4j.com/labs/arrows/[Arrows.app^] |
| 9 | +//Cross Mark |
| 10 | +:cross-mark: icon:times[] |
9 | 11 |
|
10 | | -If you have data stored in a flat file format, use *Neo4j Data Importer* -- no-code tool for importing flat file data (`.csv`, `.tsv`) into Neo4j databases. |
11 | | -Data Importer is available on *AuraDB* instances as a part of Neo4j Workspace via the `Import` tab: |
| 12 | +Neo4j offers a range of no-code tools to get you started with data modeling. |
| 13 | +Find here the available options. |
12 | 14 |
|
13 | | -image::workspace_import_tab.png[] |
| 15 | +== Neo4j Data Importer |
14 | 16 |
|
15 | | -*Arrows.app* is ideal for making a sketch of a graph, therefore if your aim is to design a domain model that your data will follow, go to the link:https://arrows.app/#/googledrive/ids=1osmv0pzcbyF8TEtvOEAMeXpONCWPn-e_[Arrows.app page]. |
| 17 | +image::data-importer-1.png[600,600,role="popup-link"] |
16 | 18 |
|
17 | | -== Projects overview |
| 19 | +Besides being a tool for xref:data-import/index.adoc[data importing], you can use Neo4j Data Importer to sketch out a graph model and map your input data to its structure and properties. |
| 20 | +You can access it: |
18 | 21 |
|
19 | | -[[data-importer]] |
20 | | -=== Neo4j Data Importer |
| 22 | +* Via the *Import* tab in link:https://neo4j.com/product/auradb/?ref=docs-nav-get-started[Neo4j Aura]. |
| 23 | +* As a standalone version link:https://data-importer.neo4j.io/[with secure connection only] or link:https://data-importer.graphapp.io/[with both secure and insecure connections]. |
21 | 24 |
|
22 | | -If you are new to Neo4j or completely new to graph, it could be hard to know where to start when it comes to loading data. |
| 25 | +For more information, refer to the link:{docs-home}/data-importer/current/modeling[Neo4j Data Importer -> Data modeling]. |
23 | 26 |
|
24 | | -Neo4j has many data import options: |
| 27 | +== Arrows.app |
25 | 28 |
|
26 | | -* `LOAD CSV` Cypher command for online import |
| 29 | +image::northwind-graph-model.png[600,600,role="popup-link"] |
27 | 30 |
|
28 | | -* APOC procedures for other formats |
| 31 | +link:https://arrows.app[Arrows.app] is a no-code visualization platform which allows whiteboarding ideas into a graph model. |
| 32 | +It is ideal for making a sketch of a graph, especially if you want to design a domain model for your data. |
29 | 33 |
|
30 | | -* `neo4j-admin database import` command to load a full database |
| 34 | +With this platform, you can: |
31 | 35 |
|
32 | | -These tools are capable, but you have to spend some time on learning them that can get in the way when you are just starting out. |
| 36 | +* Draft your own whiteboard from scratch or import data from JSON files and plain text. |
| 37 | +* Create, modify, and delete nodes and relationships with their labels and properties without writing any code. |
| 38 | +* Export the visualization model as Cypher statements, so you can load the same data model into a Neo4j database. |
33 | 39 |
|
34 | | -To address this need, *Neo4j Data Importer* was created, a small but capable no-code user-friendly interface for loading flat file data into Neo4j databases. |
| 40 | +[role=label--labs] |
| 41 | +== Cypher Workbench |
35 | 42 |
|
36 | | -image::data-importer-1.png[role="middle"] |
| 43 | +image::cypher-workbench.png[600,600,role="popup-link"] |
37 | 44 |
|
38 | | -Today Neo4j Data Importer provides: |
| 45 | +link:https://help.neo4j.solutions/neo4j-solutions/cypher-workbench/[Cypher Workbench] is a cloud-based tool that assists Neo4j developers in creating and maintaining solutions built on top of Neo4j. |
| 46 | +It combines no-code visual solutions as the ones available in link:https://arrows.app[Arrows.app] while also offering importing options similar to link:{docs-home}/data-importer[Neo4j Data Importer]. |
39 | 47 |
|
40 | | -* Support for flat-file inputs (`.csv`, `.tsv`) in the region of 1 million total rows equivalent (no upper limit is enforced, but larger loads take longer and rely on a reliable network connection to your database). |
| 48 | +With this platform, you can: |
41 | 49 |
|
42 | | -* The ability to sketch out a graph model and map your input data to its structure and properties. |
| 50 | +* Create a data model from scratch or import data from from JSON files. |
| 51 | +* Reverse-engineer data models from existing Neo4j databases. |
| 52 | +* Use Cypher statements to augment the current data model, including node labels, relationship types, and properties. |
| 53 | +* Validate your model (naming conventions, constraints, data, common mistakes, etc). |
| 54 | +* Use a business scenarios tool for capturing questions and scenarios of use cases. |
| 55 | +* Import scenarios from Excel, Google Sheets, or plain text. |
43 | 56 |
|
44 | | -* Loads into any Neo4j database which are reachable from your machine. |
| 57 | +To install it: |
45 | 58 |
|
| 59 | +* Check out the code from the link:https://github.com/neo4j-labs/cypher-workbench[GitHub Repository]. |
| 60 | +* Ensure that you have Node.js on your machine. |
| 61 | +* Follow the instructions in the Cypher Workbench project README or refer to the link:https://help.neo4j.solutions/neo4j-solutions/cypher-workbench/[documentation]. |
46 | 62 |
|
47 | | -Data is only kept in your web browser; the tool does not use a server side component. |
| 63 | +== Other tools |
48 | 64 |
|
49 | | -[IMPORTANT] |
50 | | -==== |
51 | | -Neo4j Data Importer is currently available on Neo4j AuraDB instances. |
52 | | -==== |
| 65 | +Here is a list of other non-Neo4j tools that can be used for data modeling: |
53 | 66 |
|
54 | | -[[arrows-app]] |
55 | | -=== Arrows.app |
| 67 | +* link:https://mermaid.live/[Mermaid]: general data modeling tool (not specifically for graph databases), based on Markdown. |
| 68 | +Ideal for documenting modeling strategies. |
| 69 | +* link:https://plantuml.com/[PlantUML]: application for creating diagrams from plain text. |
| 70 | +Works better with version control rather than first model design. |
| 71 | +* link:https://hackolade.com/[Hackolade]: a tool to design, document, and communicate data models and schemas. |
| 72 | +Built to support data modeling of Neo4j node labels and relationship types. |
56 | 73 |
|
57 | | -*Arrows.app* is a web-based tool from link:https://neo4j.com/labs/[Neo4j Labs] for drawing graphs. |
| 74 | +== Tools comparison |
58 | 75 |
|
59 | | -While designing a graph data model, you may need to visualize different versions. |
60 | | -Remember, there is no right or wrong way to structure your data for a graph database! |
61 | | -Your domain model depends on your business needs and aims to solve your specific problems. |
62 | | -Its flexibility allows you to refactor data model to improve performance and maximize capabilities of your graph database. |
| 76 | +[options=header,cols="^.^2,^.^,^.^2,^.^2"] |
| 77 | +|=== |
| 78 | +| Tool |
| 79 | +| Free |
| 80 | +| Import |
| 81 | +| Export |
63 | 82 |
|
64 | | -image::northwind-graph-model.png[role=middle] |
| 83 | +| Data Importer |
| 84 | +| {check-mark} |
| 85 | +| .csv, .tsv |
| 86 | +| - |
65 | 87 |
|
66 | | -Graphs are easy and intuitive to sketch on a whiteboard (we say whiteboard-friendly), and Arrows.app tries to be just as easy and intuitive as using a whiteboard. |
67 | | -You are able to create a visual layout of the organization's data entities, relationships, and properties. |
68 | | -Graph data model stays exactly as it was drawn on the whiteboard/Arrows.app canvas. |
| 88 | +| Arrows |
| 89 | +| {check-mark} |
| 90 | +| JSON |
| 91 | +| Image, Cypher, JSON,URL, GraphQL |
69 | 92 |
|
70 | | -With the help of Arrows.app: |
| 93 | +| Cypher Workbench |
| 94 | +| {cross-mark} |
| 95 | +| Cypher Workbench JSON, Apoc.meta.schema, Arrows JSON |
| 96 | +| JSON |
71 | 97 |
|
72 | | -. You can create, modify, and delete essential parts of the Neo4j graph database: nodes and relationships with their labels and properties. |
| 98 | +| PlantUML |
| 99 | +| {check-mark} |
| 100 | +| PUML,JSON |
| 101 | +| PNG, SVG, LaTeX format and ASCII art diagrams |
73 | 102 |
|
74 | | -. You can convert your table into a graph by using Arrows.app import functions. |
| 103 | +| Mermaid |
| 104 | +| {cross-mark} |
| 105 | +| MarkDown |
| 106 | +| MarkDown |
75 | 107 |
|
76 | | -. You are able to export images from Arrows.app as Cypher statements and load data into Neo4j database. |
77 | | - |
78 | | -Arrows.app features: |
79 | | - |
80 | | -* quick intuitive drawing with a mouse |
81 | | - |
82 | | -* fine-grained styling control: sizes, layouts, and colors |
83 | | - |
84 | | -* several options for exporting images |
85 | | - |
86 | | -* functionality for importing JSON files or tables |
87 | | - |
88 | | - |
89 | | -[[data-modeling-tools-resources]] |
90 | | -== Resources |
91 | | - |
92 | | -* link:https://neo4j.com/developer-blog/week-17-discover-auradb-free-analysing-nft-trades/[Blog Post. Aura Series: Discover AuraDB Free and Learn More about New Data Importer^] |
93 | | -* link:https://neo4j.com/developer-blog/neo4j-devtools-happy-new-year-new-data-importer-and-neo4j-browser-updates/[Blog Post. Neo4j DevTools’ Happy New Year: New Data Importer and Neo4j Browser Updates^] |
94 | | -* link:https://neo4j.com/videos/8-drawing-and-creating-graphs-with-arrows-app/[Video. Drawing and Creating Graphs with Arrows.app^] |
95 | | -* link:https://medium.com/neo4j/drawing-graphs-with-arrows-app-ee5735caa04d[Blog Post. Drawing graphs with Arrows.app^] |
| 108 | +| Hackolade |
| 109 | +| {cross-mark} |
| 110 | +| Hackolade JSON, YAML, DDL, XSD, Excel Template, Cloud Storage, Collibra Data Dictionary |
| 111 | +| Cypher, HTML |
| 112 | +|=== |
0 commit comments