Skip to content
This repository has been archived by the owner on Aug 6, 2020. It is now read-only.

Commit

Permalink
Merge branch 'gh-pages' of github.com:neo4j-documentation/developer-r…
Browse files Browse the repository at this point in the history
…esources into gh-pages
  • Loading branch information
klobuczek committed Aug 1, 2020
2 parents a502c3e + 06ea46c commit 47c682d
Show file tree
Hide file tree
Showing 51 changed files with 2,034 additions and 194 deletions.
10 changes: 8 additions & 2 deletions _templates/menu_partial.erb
Original file line number Diff line number Diff line change
Expand Up @@ -80,9 +80,15 @@
<div class="panel-dev-nav">
<ul>
<li><a href="/developer/graph-data-science/">Graph Data Science Overview</a></li>
<li><a href="/developer/graph-algorithms/">Neo4j Graph Algorithms</a></li>
<li><a href="/developer/graph-algorithms/">Graph Algorithms</a></li>
<li><a href="/developer/neuler-no-code-graph-algorithms/">NEuler: No-code graph algorithms</a></li>
<li><a href="/developer/graph-search-algorithms/">Graph Search Algorithms</a></li>
<li><a href="/developer/path-finding-graph-algorithms/">Path Finding Algorithms</a></li>
<li><a href="/developer/centrality-graph-algorithms/">Centrality Algorithms</a></li>
<li><a href="/developer/community-detection-graph-algorithms/">Community Detection Algorithms</a></li>
<li><a href="/developer/graph-embeddings/">Graph Embeddings</a></li>
<li><a href="/developer/nlp/">Neo4j Natural Language Processing (NLP)</a></li>
<li><a href="/developer/applied-graph-embeddings/">Applied Graph Embeddings</a></li>
<li><a href="/developer/nlp/">Natural Language Processing (NLP)</a></li>
</ul>
</div>
</dl>
Expand Down
22 changes: 9 additions & 13 deletions aura-cloud-dbaas/aura-neo4j-desktop/aura-neo4j-desktop.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -32,43 +32,39 @@ If you have not already, you can link:/download/[download it^] and follow the in

When we create a new graph in Neo4j Desktop, we have the option to create a local graph or a remote graph. Because the Neo4j Aura instance is hosted remotely, we will be connecting to a remote instance. We can do this with a few steps.

1. Navigate to the https://console.neo4j.io[Neo4j Aura Console^] and confirm your instance is running. Take note of the URL (or use the copy button next to it to copy it to your clipboard), as we will need to use it later.

1. Navigate to the https://console.neo4j.io[Neo4j Aura Console^] and confirm your instance is running. Take note of the URL (or use the copy button next to it to copy it to your clipboard), as we will need to use it later.
+
image::{img}1desktopConnect_cloud_confirm_running.jpg[link="{img}1desktopConnect_cloud_confirm_running.jpg",role="popup-link"]
[start=2]
2. Choose the Projects tab in Neo4j Desktop [1], then choose or create a project [2], and click `Add Database` [3] in the right pane.
+
image::{img}2desktopConnect_create_graph.jpg[link="{img}2desktopConnect_create_graph.jpg",role="popup-link"]
[start=3]
3. Choose the option to connect to a Remote Graph
+
image::{img}3desktopConnect_remote_graph.jpg[link="{img}3desktopConnect_remote_graph.jpg",role="popup-link"]
[start=4]
4. Enter a name for the database (can match name in cloud or can be different) and copy/paste the URL from the Neo4j Aura console (see Step 1) to the second input. Once complete, click `Next`.
+
image::{img}4desktopConnect_name_url.jpg[link="{img}4desktopConnect_name_url.jpg",role="popup-link"]
[start=5]
5. Now we need to choose an authentication method.
Neo4j Aura instances require username and password authentication, so click the `Username/password` button.
+
image::{img}5desktopConnect5_auth.jpg[link="{img}5desktopConnect5_auth.jpg",role="popup-link"]
[start=6]
6. On this screen, we enter our credentials.
By default, the username for your Neo4j Aura database will be `neo4j` and unless you have changed it, the password will be the one generated for you when you created your Aura database.
If you have created another user for your Aura database, you can use this instead.
Aura databases require an encrypted connection, so ensure the box is checked for `Use encrypted connection` before clicking `Next`.
+
image::{img}6desktopConnect_enter_user_pass.jpg[link="{img}6desktopConnect_enter_user_pass.jpg",role="popup-link"]
[start=7]
7. If the connection succeeds, we will see our database name and url. To activate the connection, click the `Connect` button in lower right.
Once activated, we can disconnect with the same button, open Neo4j Browser with the `Open` button to the left or open a link:/developer/graph-app-development/[Graph App] using the dropdown menu next to the Open button.
+
image::{img}7desktopConnect_connected_remote.jpg[link="{img}7desktopConnect_connected_remote.jpg",role="popup-link"]
Neo4j Desktop only allows 1 connection at a time to a database (local or remote).
Expand Down
8 changes: 3 additions & 5 deletions data-import/guide-import-csv/guide-import-csv.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ You saw one example of this when we were checking for null values or empty strin
----
//set businessType property based on shortened value in CSV
LOAD CSV WITH HEADERS FROM 'file:///data.csv' AS row
WITH row,
WITH row,
(CASE row.BusinessType
WHEN 'P' THEN 'Public'
WHEN 'R' THEN 'Private'
Expand Down Expand Up @@ -215,7 +215,7 @@ When the amount of data being loaded is too much to fit into memory, there are a
1. Batch the import into sections with `PERIODIC COMMIT`.
This clause can be added before the `LOAD CSV` clause to tell Cypher to only process so many rows of the file before clearing memory and transaction state.
For more information, see the link:/docs/cypher-manual/current/query-tuning/using/#query-using-periodic-commit-hint[manual page^] on `PERIODIC COMMIT`.

+
.Example
[source,cypher]
----
Expand All @@ -227,19 +227,17 @@ MERGE (owner:Owner {ownerId: row.OwnerId})
MERGE (pet)-[r:OWNED_BY]->(owner)
----

[start=2]
2. Avoid the EAGER operator.
Some statements pull in more rows than what is necessary, adding extra processing up front.
To avoid this, you can run `PROFILE` on your queries to see if they use EAGER loading and either modify queries or run multiple passes on the same file, so it does not do this.
More information about EAGER loading and how to avoid can be found in https://markhneedham.com/blog/2014/10/23/neo4j-cypher-avoiding-the-eager/[Mark's blog post^].

[start=3]
3. Adjust configuration for the database on heap and memory to avoid page-faults.
To help handle larger volumes of transactions, you can increase some configuration settings for the database and restart the instance for them to take effect. Usually, you can create or update 1M records in a single transaction per 2 GB of heap. In `neo4j.conf`:
* `dbms.memory.heap.initial_size` and `dbms.memory.heap.max_size`: set to at least 4G.
* `dbms.memory.pagecache.size`: ideally, value large enough to keep the whole database in memory.

===== +++<u>LOAD CSV Resources</u>+++
==== LOAD CSV Resources
* link:/developer/desktop-csv-import/[HowTo: Import CSV in Neo4j Desktop]
* link:/docs/cypher-manual/current/clauses/load-csv/[Cypher Manual: LOAD CSV^]
* link:/developer/guide-importing-data-and-etl/[Example: Import Northwind Data Set]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ In this guide, we want to discuss all of the options and why you can or should c
There are 3 main approaches to moving relational data to a graph.
We will briefly cover how each operates on this page, but more detailed walkthroughs are in the linked pages.

*1)* link:/developer/guide-import-csv/[LOAD CSV^]: possibly the simplest way to import data from your relational database.
*1)* link:/developer/guide-import-csv/[LOAD CSV^]: possibly the simplest way to import data from your relational database.
Requires a dump of individual entity-tables and join-tables formatted as CSV files.

*2)* https://neo4j-contrib.github.io/neo4j-apoc-procedures/[APOC^]: Awesome Procedures on Cypher.
Expand Down Expand Up @@ -77,7 +77,7 @@ Because this functionality is provided in Cypher out-of-the-box, you do not need
However, certain difficult or complex transformations may not be easily achievable or provided in Cypher.
For those cases, you might need to add an `APOC` procedure to the `LOAD CSV` statements or use another import tool.

===== +++<u>LOAD CSV Resources</u>+++
=== LOAD CSV Resources
* Cypher Manual: link:/docs/cypher-manual/current/clauses/load-csv/[LOAD CSV^]
* Guide: link:/developer/guide-import-csv/[CSV Import]
* Docs Tutorial: link:/docs/getting-started/current/cypher-intro/load-csv/[LOAD CSV for import^]
Expand All @@ -97,7 +97,7 @@ The transformation procedures in this library are nearly endless, allowing the d
If you are in need of a way for flexible and custom data handling, `APOC` could be the way to go.
The downside to using this library for complicated scenarios is that it may result in many lines of code to handle multiple data transformations.

===== +++<u>APOC Resources</u>+++
=== APOC Resources
* Documentation: https://neo4j-contrib.github.io/neo4j-apoc-procedures/index35.html[APOC^]
* Videos: https://youtu.be/e8UfOHJngQA[APOC Video Series^]
* Source code: https://github.com/neo4j-contrib/neo4j-apoc-procedures[Github project^]
Expand All @@ -113,7 +113,7 @@ This tool provides a simple, straightforward process for an initial import from
However, it does not provide the ability at this point in time to handle incremental loads or updates to existing data.
It is a community-driven tool, so updates are made as needed and not on a scheduled timeline.

===== +++<u>ETL Tool Resources</u>+++
=== ETL Tool Resources
* Developer guide: https://neo4j.com/developer/neo4j-etl/[Neo4j ETL Tool^]
* Blog post: https://medium.com/neo4j/tap-into-hidden-connections-translating-your-relational-data-to-graph-d3a2591d4026[Translating Relational Data to Graph^]
* Source code: https://github.com/neo4j-contrib/neo4j-etl[Github project^]
Expand All @@ -132,7 +132,7 @@ Processes that need to log information to Neo4j or flexibility for embedding in
All of this functionality is bundled out-of-the-box through a simple, yet powerful GUI for your ETL developers.
Cooperation with Neo4j simply requires the plugins for our graph data integration.

===== +++<u>Kettle Resoures</u>+++
=== Kettle Resoures
* Kettle Download: https://sourceforge.net/projects/pentaho/files/[Open-source project on SourceForge^]
* Neo4j Plugins: https://github.com/knowbi/knowbi-pentaho-pdi-neo4j-output/releases/[Integrate Kettle with Neo4j^]
* Blog post: https://medium.com/neo4j/getting-started-with-kettle-and-neo4j-32ff15b991f9[Getting Started with Kettle and Neo4j^]
Expand All @@ -143,7 +143,7 @@ Cooperation with Neo4j simply requires the plugins for our graph data integratio
There are a few other data integration tools provided by other individuals or companies that work well with Neo4j.
Open-source options such as Talend or Nifi offer simple processes for simple processes with already-familiar tools.

===== +++<u>Other Resources</u>+++
=== Other Resources
* Talend: https://help.talend.com/reader/mjoDghHoMPI0yuyZ83a13Q/x2QYS1x3sfOsjGD3s5RtkQ[Writing data to Neo4j^]
* Documentation: http://sim51.github.io/neo4j-talend-component/index.html[Talend Neo4j Connector^]
* Blog post: https://neo4j.com/blog/fun-with-music-neo4j-and-talend/[Fun with music, Talend, and Neo4j^]
Expand All @@ -158,6 +158,6 @@ This process is also helpful if you do not have access to the Cypher shell or if
You can set up the driver connection to Neo4j, and then execute Cypher statements that pass from the application-level through the driver and to the database for various operations - including large amounts of inserts and updates.
Using the driver and programming language can be very useful for incremental updates to data passed from other systems into Neo4j.

===== +++<u>Driver Import Resources</u>+++
=== Driver Import Resources
* Blog post: https://medium.com/neo4j/5-tips-tricks-for-fast-batched-updates-of-graph-structures-with-neo4j-and-cypher-73c7f693c8cc[Tips and Tricks for Fast-Batched Import with Neo4j^]
* Documentation: https://neo4j.com/docs/driver-manual/current/[Neo4j Driver Manual^]
1 change: 1 addition & 0 deletions get-started/get-started.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
:author: Jennifer Reif
:category: documentation
:tags: get-started, introduction, graph, database, graph-platform, training
:description: Become an expert Neo4j developer with these introductory tutorials and guidelines that cover the entire development lifecycle, from download to deployment.

++++
<object type="image/svg+xml" data="https://dist.neo4j.com/wp-content/uploads/get_started_neo4j.svg"></object>
Expand Down
2 changes: 2 additions & 0 deletions get-started/graph-db-vs-nosql/graph-db-vs-nosql.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,9 @@ Although unhelpfully named, the NoSQL ("Not only SQL") space brings together man
With the advent of the NoSQL movement, the "one-size-fits-all" proposition of large relational systems was replaced by conscious decisions about finding the right tool for the job.

++++
<div class="responsive-embed">
<iframe width="680" height="425" src="https://www.youtube.com/embed/5Tl8WcaqZoc" frameborder="0" allowfullscreen></iframe>
</div>
++++

Most NoSQL systems are *aggregate-oriented*, grouping the data based on a particular criterion and the database type (such as document store, key-value pair, etc).
Expand Down
Loading

0 comments on commit 47c682d

Please sign in to comment.