public static void main()

in ytdb/src/main/java/com/youtrackdb/ldbc/ytdb/loader/Main.java [14:75]


    public static void main(String[] args) throws Exception {
        Properties props = new Properties();
        try (var in = Main.class.getResourceAsStream("/loader.properties")) {
            props.load(in);
        }

        String mode = System.getenv().getOrDefault("YTDB_MODE", props.getProperty("ytdb.mode", "embedded"));
        String dbPath = System.getenv().getOrDefault("YTDB_DATA_DIR", props.getProperty("ytdb.data.dir"));
        String serverHost = System.getenv().getOrDefault("YTDB_SERVER_HOST", props.getProperty("ytdb.server.host", "localhost"));
        int serverPort = Integer.parseInt(System.getenv().getOrDefault("YTDB_SERVER_PORT", props.getProperty("ytdb.server.port", "8182")));
        String serverUser = System.getenv().getOrDefault("YTDB_SERVER_USER", props.getProperty("ytdb.server.user", "root"));
        String serverPassword = System.getenv().getOrDefault("YTDB_SERVER_PASSWORD", props.getProperty("ytdb.server.password", "root"));
        String dbName = System.getenv().getOrDefault("YTDB_DATABASE_NAME", props.getProperty("ytdb.database.name"));
        String databaseUser = System.getenv().getOrDefault("YTDB_DATABASE_USER", props.getProperty("ytdb.database.user"));
        String databasePassword = System.getenv().getOrDefault("YTDB_DATABASE_PASSWORD", props.getProperty("ytdb.database.password"));
        Path datasetPath = Paths.get(System.getenv().getOrDefault("YTDB_TEST_DATA_DIR", props.getProperty("ytdb.dataset.path")));

        System.out.println("LDBC SNB Loader | Mode: " + mode + " | Dataset: " + datasetPath);

        YouTrackDB db = null;
        YTDBGraphTraversalSource traversal = null;

        try {
            db = "remote".equalsIgnoreCase(mode)
                    ? YourTracks.instance(serverHost, serverPort, serverUser, serverPassword)
                    : YourTracks.instance(dbPath);

            if (db.exists(dbName)) {
                db.drop(dbName);
            }

            db.create(dbName, DatabaseType.DISK, databaseUser, databasePassword, "admin");
            traversal = db.openTraversal(dbName, databaseUser, databasePassword);

            new SchemaCreator(traversal).createSchema();

            long startTime = System.currentTimeMillis();
            YtdbLoader loader = new YtdbLoader(traversal);
            loader.loadAll(datasetPath);

            long duration = System.currentTimeMillis() - startTime;
            System.out.println("\nCompleted in " + duration + "ms (" + (duration / 1000.0) + "s)\n");

            Map<String, Long> counts = loader.counts();
            counts.entrySet().stream()
                    .sorted(Map.Entry.comparingByKey())
                    .forEach(entry -> System.out.printf("  %-20s: %,d%n", entry.getKey(), entry.getValue()));

        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
            e.printStackTrace();
            System.exit(1);
        } finally {
            if (traversal != null) {
                traversal.close();
            }

            if (db != null) {
                db.close();
            }
        }
    }