Created
March 14, 2017 17:28
-
-
Save jvilledieu/313a6b56abd41db7d99c9f37db346d0c to your computer and use it in GitHub Desktop.
Import script for the generals' of gold.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Verifying the CSV file | |
// assert correct line count | |
LOAD CSV FROM "file:/Developer/TGOG/data/person.csv" AS line | |
RETURN count(*); | |
// check first few raw lines | |
LOAD CSV FROM "file:/Developer/TGOG/data/person.csv" AS line WITH line | |
RETURN line | |
LIMIT 1; | |
// check first 5 line-sample with header-mapping | |
LOAD CSV WITH HEADERS FROM "file:/Developer/TGOG/data/person.csv" AS line WITH line | |
RETURN line | |
LIMIT 1; | |
//-=-=-=-=-=-=-= | |
//Cleaning up the database | |
MATCH (n) | |
WITH n LIMIT 10000 | |
OPTIONAL MATCH (n)-[r]->() | |
DELETE n,r; | |
//Importing the file person.csv | |
//Creating the constraints | |
create constraint on (a:شخص) assert a.الاسم_الكامل is unique; | |
//Loading the data | |
USING PERIODIC COMMIT 2000 | |
LOAD CSV WITH HEADERS FROM "file:/Developer/TGOG/data/person.csv" AS line WITH line | |
WHERE line.الاسم_الكامل IS NOT NULL | |
MERGE (a:شخص { الاسم_الكامل: line.الاسم_الكامل }) | |
ON CREATE SET a.الاسم_الأول = line.الاسم_الأول, | |
a.اسم_الأب = line.اسم_الأب, | |
a.اسم_الجد = line.اسم_الجد, | |
a.اسم_العائلة = line.اسم_العائلة, | |
a.تاريخ_الميلاد = line.تاريخ_الميلاد,//toInt(line.تاريخ_الميلاد) | |
a.تاريخ_الوفاة = line.تاريخ_الوفاة, | |
a.الجنس = line.الجنس, | |
a.الجنسية = line.الجنسية, | |
a.الرتبة_العسكرية = line.الرتبة_العسكرية, | |
a.وصف_الشخصية = line.وصف_الشخصية, | |
a.رقم_القطاع = toInt(line.رقم_القطاع); | |
//Importing the file organization.csv | |
//Creating the constraints | |
create constraint on (a:منظمة) assert a.اسم_المنظمة is unique; | |
//Loading the data | |
USING PERIODIC COMMIT 2000 | |
LOAD CSV WITH HEADERS FROM "file:/Developer/TGOG/data/organization.csv" AS line WITH line | |
WHERE line.اسم_المنظمة IS NOT NULL | |
MERGE (a:منظمة { اسم_المنظمة: line.اسم_المنظمة }) | |
ON CREATE SET a.شهرة_المنظمة = line.شهرة_المنظمة, | |
a.بلد_المنشأ = line.بلد_المنشأ, | |
a.نوع_المنظمة = line.نوع_المنظمة, | |
a.نوع_السيطرة = line.نوع_السيطرة, | |
a.تاريخ_التأسيس = line.تاريخ_التأسيس, | |
a.تاريخ_الحل = line.تاريخ_الحل, | |
a.رقم_القطاع = toInt(line.رقم_القطاع); | |
// a.خط_الطول = toFloat(line.خط_الطول), | |
// a.دائرة_العرض = toFloat(line.دائرة_العرض); | |
//Importing the file project.csv | |
//Creating the constraints | |
create constraint on (a:مشروع) assert a.اسم_المشروع is unique; | |
//Loading the data | |
USING PERIODIC COMMIT 2000 | |
LOAD CSV WITH HEADERS FROM "file:/Developer/TGOG/data/project.csv" AS line WITH line | |
WHERE line.اسم_المشروع IS NOT NULL | |
MERGE (a:مشروع { اسم_المشروع: line.اسم_المشروع }) | |
ON CREATE SET a.وصف_المشروع = line.وصف_المشروع, | |
a.رقم_القطاع = toInt(line.رقم_القطاع), | |
a.قطاع_الخدمة = line.قطاع_الخدمة, | |
a.بداية_المشروع = line.بداية_المشروع, | |
a.نهاية_المشروع = line.نهاية_المشروع, | |
a.خط_الطول = toFloat(line.خط_الطول), | |
a.دائرة_العرض = toFloat(line.دائرة_العرض); | |
// Check label counts: | |
MATCH n | |
RETURN DISTINCT count(labels(n)), labels(n); | |
//Creating the edges | |
//Creating an index on the person to speed up the import | |
DROP CONSTRAINT ON (a:شخص) ASSERT a.الاسم_الكامل IS UNIQUE; | |
CREATE INDEX ON :شخص(الاسم_الكامل); | |
//Importing the file person_to_person_org.csv | |
USING PERIODIC COMMIT 1000 | |
LOAD CSV WITH HEADERS FROM "file:/Developer/TGOG/data/person_to_person_org.csv" AS line WITH line | |
WHERE line.الطرف_الأول IS NOT NULL AND line.الطرف_الثاني IS NOT NULL | |
MATCH (a:شخص {الاسم_الكامل: line.الطرف_الأول}), (b:شخص {الاسم_الكامل: line.الطرف_الثاني}) | |
CREATE (b)-[:رابطة_تنظيمية {نوع_العلاقة : line.نوع_العلاقة, وزن_العلاقة: toInt(line.وزن_العلاقة), وصف_العلاقة: line.وصف_العلاقة}]->(a); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment