Il s'agit du deuxième essai de création d'un point de terminaison SPARQL sans serveur AWS. Le premier est ici.
J'ai essayé de créer un point de terminaison SPARQL dans un environnement sans serveur AWS, mais cela n'a pas fonctionné. https://qiita.com/uedayou/items/bdf7a802e27fe330044e
La dernière fois, j'ai senti que la vitesse de recherche était difficile en raison de la bibliothèque utilisée et qu'elle pouvait être utilisée à des fins limitées. Cette fois, j'ai utilisé Apache Jena, qui a fait ses preuves en tant que magasin RDF.
Comme la dernière fois, il a la configuration d'AWS Lambda + API Gateway. Apache Jena
en utilisant. Vous pouvez utiliser le fichier RDF directement en plus de la méthode utilisée dans TDB, mais il est recommandé de le convertir en TDB et de l'utiliser en fonction des résultats suivants.
Le code source est disponible ci-dessous. https://github.com/uedayou/jena-sparql-server-aws-serverless
Combien de temps faut-il pour rechercher
Nous mesurons environ deux choses. TDB se déploie une fois compressé au format ZIP.
La requête est la même que Dernière fois. L'ensemble de données est le même que Dernière fois [«International Standard Identifier for Libraries and Related Organizations (ISIL)» Trial Version LOD](https: // www. ndl.go.jp/jp/dlib/standards/opendataset/index.html) a été utilisé. Il est mesuré pour chaque ensemble de données créé en ajoutant un par un les fichiers Turtle divisés (les fichiers RDF sont uniquement ceux qui intègrent tous les fichiers).
select * where {?s ?p ?o} limit 100
select (count(*) as ?count) where {?s ?p ?o}
filter
pour affiner la chaîne de caractèresprefix 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, "Tokyo") )
}
limit 10
J'ai pu rechercher assez rapidement en utilisant TDB. Cependant, AWS Lambda prend plus de temps pour initialiser et décompresser le TDB compressé au format ZIP lorsqu'un conteneur est créé (une fois qu'il est créé, le conteneur sera réutilisé pendant un certain temps), donc à ce moment-là (par exemple) Il a fallu environ 4 secondes pour le fichier utilisé cette fois, car il a fallu beaucoup de temps pour les traiter au premier démarrage (quand il n'a pas été exécuté pendant un certain temps et que le conteneur a été détruit). Vous trouverez ci-dessous l'heure à laquelle le conteneur a déjà été créé. Lorsque le conteneur n'est pas créé, cela prendra +4 secondes pour le temps suivant. La dernière fois a pris plus de 10 secondes pour certaines requêtes, et même des requêtes simples pouvaient parfois expirer et ne pas obtenir les résultats de la recherche. Même lorsque la création de conteneurs TDB est requise, le résultat peut être obtenu dans les 5 secondes, et je pense qu'il n'expirera pas à moins qu'il s'agisse d'une requête très compliquée.
Nombre de triples | (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 |
L'utilisation directe du fichier RDF a pris plus de temps que TDB. Ce qui suit est l'heure à laquelle le conteneur est créé comme TDB, mais l'initialisation a pris plus de temps que TDB (environ 7 secondes). Bien que TDB inclut également le traitement de décompression ZIP, il n'est pas clair jusqu'à ce que j'étudie que l'utilisation d'un fichier RDF prend plus de temps à s'initialiser, mais j'ai pensé qu'il serait préférable d'utiliser TDB même après l'avoir soustrait.
Nombre de triples | (1) | (2) | (3) |
---|---|---|---|
160,491 | 1587ms | 1664ms | 1215ms |
Je pense personnellement que la version sans serveur AWS du point de terminaison SPARQL qui utilise Apache Jena a des performances satisfaisantes, je voudrais donc l'utiliser de différentes manières à l'avenir.
Immédiatement, le point de terminaison SPARQL du site fournisseur de données ouvertes ferroviaires Railway Station LOD est converti en version Apache Jena. Cela a changé.
Si vous souhaitez l'essayer, veuillez vous référer à l'article suivant.
Expérimentation du point final SPARQL de la gare LOD https://qiita.com/uedayou/items/3ba823c5d3bede12af9c