in ytdb/src/main/java/com/youtrackdb/ldbc/ytdb/loader/YtdbLoader.java [27:66]
public void loadAll(Path datasetRoot) throws Exception {
log.info("Starting LDBC SNB data load from: {}", datasetRoot);
Path staticDir = datasetRoot.resolve("static");
Path dynamicDir = datasetRoot.resolve("dynamic");
validateDirectories(staticDir, dynamicDir);
long startTime = System.currentTimeMillis();
// Phase 1: Load static entities
log.info("Loading static entities...");
loadEntities(staticDir, "place_0_0.csv", LdbcSchema.PLACE, Place::parse, this::insertPlace);
loadEntities(staticDir, "organisation_0_0.csv", LdbcSchema.ORGANISATION, Organisation::parse, this::insertOrganisation);
loadEntities(staticDir, "tagclass_0_0.csv", LdbcSchema.TAG_CLASS, TagClass::parse, this::insertTagClass);
loadEntities(staticDir, "tag_0_0.csv", LdbcSchema.TAG, Tag::parse, this::insertTag);
// Phase 2: Load static relationships
log.info("Loading static relationships...");
loadSimpleEdge(staticDir, "place_isPartOf_place_0_0.csv", LdbcSchema.IS_PART_OF, LdbcSchema.PLACE, LdbcSchema.PLACE);
loadSimpleEdge(staticDir, "organisation_isLocatedIn_place_0_0.csv", LdbcSchema.IS_LOCATED_IN, LdbcSchema.ORGANISATION, LdbcSchema.PLACE);
loadSimpleEdge(staticDir, "tagclass_isSubclassOf_tagclass_0_0.csv", LdbcSchema.IS_SUBCLASS_OF, LdbcSchema.TAG_CLASS, LdbcSchema.TAG_CLASS);
loadSimpleEdge(staticDir, "tag_hasType_tagclass_0_0.csv", LdbcSchema.HAS_TYPE, LdbcSchema.TAG, LdbcSchema.TAG_CLASS);
// Phase 3: Load dynamic entities
log.info("Loading dynamic entities...");
loadEntities(dynamicDir, "person_0_0.csv", LdbcSchema.PERSON, Person::parse, this::insertPerson);
loadEntities(dynamicDir, "forum_0_0.csv", LdbcSchema.FORUM, Forum::parse, this::insertForum);
loadEntities(dynamicDir, "post_0_0.csv", LdbcSchema.POST, Post::parse, this::insertPost);
loadEntities(dynamicDir, "comment_0_0.csv", LdbcSchema.COMMENT, Comment::parse, this::insertComment);
// Phase 4: Load dynamic relationships
log.info("Loading dynamic relationships...");
loadPersonRelationships(dynamicDir);
loadForumRelationships(dynamicDir);
loadContentRelationships(dynamicDir);
long duration = System.currentTimeMillis() - startTime;
log.info("Data loading completed in {}ms ({} seconds)", duration, duration / 1000.0);
}