Ich habe einen großen RDF-Datensatz (Geonames-Datensatz: 18 GB) in PostgreSQL-Tabellen mit rdflib_sqlalchemy.SQLAlchemy
geladen.Wie kann ich die SPARQL-Abfrage von Python RDFLib beschleunigen?
Ich habe folgende einfache Abfrage aus Python-Skript mit RDFLib-Unterstützung ausgeführt. Es hat mehr als zwei Stunden gedauert, um mir das Ergebnis zu geben. Gibt es eine Möglichkeit, es schneller zu machen, ohne RDF-Daten in einen Triple-Store (z. B. Virtuoso) zu injizieren?
mystore = store.SQLAlchemy(configuration="postgresql://localhost:5873/postgres")
g = Graph(mystore, identifier="test")
results = g.query("""SELECT ?s ?p ?o WHERE {?s ?p ?o .} LIMIT 1""")
for row in results:
print row
Ich arbeite auf einem Rechenknoten des Clusters. Ich habe versucht, meine Abfrage mit In-Memory-Daten wie folgt auszuführen. Trotzdem ist es langsam.
g = Graph()
g.parse('geonames.nt', format='nt')
results = g.query("""SELECT ?s ?p ?o WHERE {?s ?p ?o .} LIMIT 1""")
for row in results:
print row
Bitte lassen Sie mich Ihre Meinung wissen. Danke für Ihre Hilfe.
Daten dieser Größe sind in einem RDF-Speicher besser geladen. –
welche rdflib-version ist das? Bitte beachten Sie auch das Öffnen eines Bugreports unter https://github.com/RDFLib/rdflib-sqlalchemy/issues –