# Neo4j Features and Practical Usage
🚪 Pick the wrong data-import method up front and every downstream step pays for it. Neo4j's "Import your data" hub helps you choose the right entry point based on scale and frequency.
🏷️ Title: Import method selection guide
🔗 URL:
📘 Overview
Neo4j offers several ways to load data, each with different strengths in terms of scale, execution mode (online vs offline), and permission requirements. This page is not a step-by-step tutorial but a decision hub for choosing the right method before you start.
⚙️ How It Works
The main options are:
・Data Importer: a browser-based GUI where you drag and drop CSVs and visually map columns to nodes and relationships. No Cypher required; ideal for testing and prototyping.
・`LOAD CSV`: a general-purpose Cypher-based loader. Runs online (database stays up) and is usable by non-admin users. Good up to hundreds of thousands or low millions of rows.
・`neo4j-admin database import`: an offline bulk loader that writes directly to the native store format, making it the fastest path for initial loading of very large datasets (billions of entities).
・Connectors / APOC: continuous sync via Apache Spark, Kafka, and CDC, plus support for diverse formats like JSON, XML, and XLS.
🛠️ Practical Usage
Decide the entry point by scale and frequency:
・A few thousand master records, fast → Data Importer (GUI)
・Millions of rows on a schedule / incremental → `LOAD CSV` (made idempotent with `MERGE`)
・Billions of entities, one-shot initial build → `neo4j-admin database import` (offline)
・Always-on continuous sync → Kafka / CDC / Spark connectors
Whatever the path, a shared best practice is to create a uniqueness constraint on the key column before importing.
```cypher
CREATE CONSTRAINT person_id IF NOT EXISTS
FOR (p:Person) REQUIRE IS UNIQUE;
```
💡 Use Cases
Early in a project, split the paths: Data Importer for the PoC, `neo4j-admin import` for the production initial build, and `LOAD CSV` for daily incrementals. This keeps validation light and fast while making the bulk load as fast as possible.
⚠️ Caveats
・`neo4j-admin import` targets an empty database and runs offline, so it cannot be used against a live database.
・`LOAD CSV` tends to hit memory issues as row counts approach hundreds of thousands to millions; split work with `CALL { } IN TRANSACTIONS`.
・Continuous sync (Kafka/CDC) is distinct from initial loading and should be designed alongside it.
・This page is just the entry point; confirm the details of each method in its dedicated docs.
#
Neo4j# #
DataImport#