2016-02-03 3 views
0

Я пытаюсь загрузить миллионы узлов из файлов CSV в Titan 1.0.0 с помощью Cassandra backend в JAVA. Как загрузить их?Как загрузить миллионы вершин из CSV в Titan 1.0.0 с помощью Bulkloadervertextprogram?

Я проверил, мы можем загрузить их, используя BulkLoaderVertexProgram, но загружает данные из формата GraphSON.

Как начать писать код JAVA на массовая загрузка данных из CSV? Можете ли вы указать какую-то начальную ссылку, где я могу заглянуть и начать писать код?

Должен ли я иметь Spark/Hadoop, работающий на моей системе, использовать SparkComputerGraph, который используется Bulkloaderprogram?

Я не могу начать писать код, так как я не понимаю, как читать данные из CSV, используя bulkloderprogram. Можете ли вы предоставить некоторые стартовые ссылки для продолжения Java-кода?

Спасибо.

ответ

0

Возможно, вам понадобится специальное программное обеспечение Java для чтения ваших файлов CSV и загрузки графика с ними.

Если вы хотите использовать OGM, то вам нужно создать классы POJO в качестве модели данных для своих данных, вы можете использовать Peapod, чтобы легко создать модель данных.

Так что это пример

@Vertex 
public abstract class Person { 
    public abstract String getName(); 
    public abstract void setName(String name); 

    public abstract List<Knows> getKnows(); 
    public abstract Knows getKnows(Person person); 
    public abstract Knows addKnows(Person person); 
    public abstract Knows removeKnows(Person person); 
} 

@Edge 
public abstract class Knows { 
    public abstract void setYears(int years); 
    public abstract int getYears(); 
} 

Для загрузки данных, это пример,

FramedGraph g=new FramedGraph(TitanFactory.open("path_to_prop_file")); 
Person person1=g.addVertex(Person.class); 
person.setName("M-T-A"); 

Person person2=g.addVertex(Person.class); 
person2.setName("Amnesiac"); 

Knows pKnowsP2=person.addKnows(person1); 
pKnowsP2.setYears(1); 

проще, чем вы думали? Надеюсь на это.

+0

Я сделал множество подобных проектов, поэтому, если вам нужна помощь, дайте мне знать;) –

+0

, пожалуйста, ознакомьтесь с https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/aureliusgraphs/BawnoCvhKEk/g6zeM5aTCgAJ, если вы можете мне помочь в этом. Вы знаете точный формат данных и ребра, которые нужно добавить. – Amnesiac

1

Это кросс-размещен на Titan mailing list ...

Если вы хотите использовать Java-код, проверить Marvel график пример Алекса и Мэтью:

https://github.com/awslabs/dynamodb-titan-storage-backend/blob/1.0.0/src/main/java/com/amazon/titan/example/MarvelGraphFactory.java

Это создает Титан, анализирует CSV, а затем использует базовые Gremlin addVertex() и addEdge() для построения графика. Вы заметите, что TitanGraph не создается на самом заводе, поэтому, хотя он присутствует в примере Titan-DynamoDB, вы можете использовать его с любым бэкэндом Titan (Cassandra, HBase, Berkeley).

Если ваши данные на графике представлены в миллионах, вы можете использовать график Titan-BerkeleyJE на своей собственной машине, который может быть проще использовать сначала, а не кластер Cassandra. Я бы рекомендовал, чтобы вы не слишком сильно загрузились с загрузкой большого количества данных - сначала получите удобство в том, как сначала использовать Titan и TinkerPop с OLTP, а затем перейдите в подходы OLAP.

+0

Спасибо большое! Я обязательно попробую это. Я буду публиковать любые сомнения, если у меня есть. Большое спасибо! :) – Amnesiac

-1

Как насчет преобразования CSV в GraphML, а затем загрузить его на один раз, используя гремлина

g = TitanFactory.open('bin/cassandra.local') 
gremlin> g.loadGraphML('data/graph-of-the-gods.xml') 
gremlin> g.commit() 

не было бы производительным, чем сделать Gremlin вызов для каждого AddVertex/addEdge?