Dies ist der zweite Versuch, einen SPARQL-Endpunkt ohne AWS-Server zu erstellen. Der erste ist hier.
Ich habe versucht, einen SPARQL-Endpunkt in einer AWS-Umgebung ohne Server zu erstellen, aber es hat nicht funktioniert. https://qiita.com/uedayou/items/bdf7a802e27fe330044e
Beim letzten Mal hatte ich das Gefühl, dass die Suchgeschwindigkeit aufgrund der verwendeten Bibliothek schwierig war und für begrenzte Zwecke verwendet werden konnte. Dieses Mal habe ich Apache Jena verwendet, das sich als RDF-Store bewährt hat.
Wie beim letzten Mal hat es die Konfiguration von AWS Lambda + API Gateway. Apache Jena
mit. Sie können die RDF-Datei direkt zusätzlich zu der in TDB verwendeten Methode verwenden. Es wird jedoch empfohlen, sie in TDB zu konvertieren und basierend auf den folgenden Ergebnissen zu verwenden.
Der Quellcode ist unten verfügbar. https://github.com/uedayou/jena-sparql-server-aws-serverless
Wie lange dauert die Suche?
Wir messen zwei Dinge. TDB wird nach der ZIP-Komprimierung bereitgestellt.
Die Abfrage ist dieselbe wie Letztes Mal. Der Datensatz ist derselbe wie Letztes Mal ["International Standard Identifier for Libraries and Related Organizations (ISIL)" - Testversion LOD](https: // www. ndl.go.jp/jp/dlib/standards/opendataset/index.html) wurde verwendet. Sie wird für jeden Datensatz gemessen, der durch einzelnes Hinzufügen geteilter Turtle-Dateien erstellt wird (RDF-Dateien sind nur solche, die alle Dateien integrieren).
select * where {?s ?p ?o} limit 100
select (count(*) as ?count) where {?s ?p ?o}
filter
, um die Zeichenfolge einzugrenzenprefix schema: <http://schema.org/>
prefix org: <http://www.w3.org/ns/org#>
prefix dbpedia: <http://dbpedia.org/ontology/>
select * where {
?uri dbpedia:originalName ?name;
org:hasSite/org:siteAddress/schema:addressRegion ?pref.
filter( regex(?pref, "Tokio") )
}
limit 10
Ich konnte mit TDB ziemlich schnell suchen. AWS Lambda benötigt jedoch zusätzliche Zeit, um den ZIP-komprimierten TDB zu initialisieren und zu dekomprimieren, wenn ein Container erstellt wird (sobald er erstellt wurde, wird der Container für eine Weile wiederverwendet), also zu diesem Zeitpunkt (zum Beispiel). Die diesmal verwendete Datei dauerte ungefähr 4 Sekunden, da die Verarbeitung beim ersten Start lange dauerte (wenn sie eine Weile nicht ausgeführt wurde und der Container zerstört wurde). Unten ist der Zeitpunkt angegeben, zu dem der Container bereits erstellt wurde. Wenn der Container nicht erstellt wird, dauert es für die folgende Zeit +4 Sekunden. Letztes Mal dauerte bei einigen Abfragen mehr als 10 Sekunden, und selbst bei einfachen Abfragen trat manchmal eine Zeitüberschreitung auf und es wurden keine Suchergebnisse angezeigt. Selbst wenn die Erstellung eines TDB-Containers erforderlich ist, kann das Ergebnis innerhalb von 5 Sekunden abgerufen werden, und ich denke, dass es keine Zeitüberschreitung gibt, es sei denn, es handelt sich um eine sehr komplizierte Abfrage.
Anzahl der Tripel | (1) | (2) | (3) |
---|---|---|---|
21,788 | 242ms | 494ms | 159ms |
42,585 | 254ms | 531ms | 102ms |
63,448 | 148ms | 502ms | 67ms |
84,587 | 166ms | 504ms | 100ms |
104,826 | 154ms | 572ms | 85ms |
124,718 | 176ms | 367ms | 112ms |
144,669 | 153ms | 583ms | 80ms |
160,491 | 141ms | 579ms | 104ms |
Die direkte Verwendung der RDF-Datei dauerte länger als die Verwendung von TDB. Im Folgenden wird der Container wie TDB erstellt, die Initialisierung dauerte jedoch länger als bei TDB (ca. 7 Sekunden). Obwohl TDB auch die ZIP-Dekomprimierungsverarbeitung enthält, ist erst klar, dass die Initialisierung mit einer RDF-Datei länger dauert. Ich dachte jedoch, dass es besser wäre, TDB auch nach dem Subtrahieren zu verwenden.
Anzahl der Tripel | (1) | (2) | (3) |
---|---|---|---|
160,491 | 1587ms | 1664ms | 1215ms |
Ich persönlich denke, dass die AWS-Version ohne Server des SPARQL-Endpunkts, die Apache Jena verwendet, eine zufriedenstellende Leistung aufweist. Daher möchte ich sie in Zukunft auf verschiedene Arten verwenden.
Der SPARQL-Endpunkt der Website zur Bereitstellung offener Daten Railway Station LOD ist jetzt die Apache Jena-Version es hat sich geändert.
Wenn Sie es ausprobieren möchten, lesen Sie bitte den folgenden Artikel.
Experimentell freigegeben der SPARQL-Endpunkt des Bahnhofs LOD https://qiita.com/uedayou/items/3ba823c5d3bede12af9c