Einen Neptune erschaffen GraphMappingConfig - Amazon Neptune

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Einen Neptune erschaffen GraphMappingConfig

Die von Ihnen erstellte GraphMappingConfig gibt an, wie aus einem Quelldatenspeicher extrahierte Daten in einen Neptune-DB-Cluster geladen werden sollen. Das Format ist davon abhängig, ob sie zum Laden von RDF-Daten oder zum Laden von Eigenschaftsdiagrammdaten verwendet wird.

Für RDF-Daten können Sie die W3-Sprache R2RML verwenden, um relationale Daten zu RDF zuzuordnen.

Wenn Sie Eigenschaftsdiagrammdaten laden, die mit Gremlin abgefragt werden sollen, erstellen Sie ein JSON-Objekt für GraphMappingConfig.

GraphMappingConfig Layout für RDF/SPARQL-Daten

Wenn Sie RDF-Daten laden, die mit SPARQL abgefragt werden sollen, schreiben Sie die GraphMappingConfig in R2RML. R2RML ist eine Standard-W3-Sprache für die Zuweisung relationaler Daten zu RDF. Hier ist ein Beispiel:

@prefix rr: <http://www.w3.org/ns/r2rml#> . @prefix ex: <http://example.com/ns#> . <#TriplesMap1> rr:logicalTable [ rr:tableName "nodes" ]; rr:subjectMap [ rr:template "http://data.example.com/employee/{id}"; rr:class ex:Employee; ]; rr:predicateObjectMap [ rr:predicate ex:name; rr:objectMap [ rr:column "label" ]; ] .

Im Folgenden ein weiteres Beispiel:

@prefix rr: <http://www.w3.org/ns/r2rml#> . @prefix ex: <http://example.com/#> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . <#TriplesMap2> rr:logicalTable [ rr:tableName "Student" ]; rr:subjectMap [ rr:template "http://example.com/{ID}{Name}"; rr:class foaf:Person ]; rr:predicateObjectMap [ rr:predicate ex:id ; rr:objectMap [ rr:column "ID"; rr:datatype xsd:integer ] ]; rr:predicateObjectMap [ rr:predicate foaf:name ; rr:objectMap [ rr:column "Name" ] ] .

Die W3-Empfehlung unter R2RML: RDB to RDF Mapping Language enthält Details zu dieser Sprache.

GraphMappingConfig Layout für Eigenschaftsdiagramme/Gremlin-Daten

Ein vergleichbarer GraphMappingConfig für Eigenschaftsdiagrammdaten ist ein JSON-Objekt, das eine Zuweisungsregel für jede aus den Quelldaten generierte Diagrammentität bereitstellt. Die folgende Vorlage zeigt, wie die einzelnen Regeln in diesem Objekt aussehen:

{ "rules": [ { "rule_id": "(an identifier for this rule)", "rule_name": "(a name for this rule)", "table_name": "(the name of the table or view being loaded)", "vertex_definitions": [ { "vertex_id_template": "{col1}", "vertex_label": "(the vertex to create)", "vertex_definition_id": "(an identifier for this vertex)", "vertex_properties": [ { "property_name": "(name of the property)", "property_value_template": "{col2} or text", "property_value_type": "(data type of the property)" } ] } ] }, { "rule_id": "(an identifier for this rule)", "rule_name": "(a name for this rule)", "table_name": "(the name of the table or view being loaded)", "edge_definitions": [ { "from_vertex": { "vertex_id_template": "{col1}", "vertex_definition_id": "(an identifier for the vertex referenced above)" }, "to_vertex": { "vertex_id_template": "{col3}", "vertex_definition_id": "(an identifier for the vertex referenced above)" }, "edge_id_template": { "label": "(the edge label to add)", "template": "{col1}_{col3}" }, "edge_properties":[ { "property_name": "(the property to add)", "property_value_template": "{col4} or text", "property_value_type": "(data type like String, int, double)" } ] } ] } ] }

Beachten Sie, dass das Vorhandensein einer Vertex-Beschriftung impliziert, dass die Vertex hier erstellt wird, während ihre Abwesenheit impliziert, dass die Vertex von einer anderen Quelle erstellt wird und diese Definition nur Vertexeigenschaften hinzufügt.

Hier ist eine Beispielregel für einen Mitarbeiterdatensatz:

{ "rules": [ { "rule_id": "1", "rule_name": "vertex_mapping_rule_from_nodes", "table_name": "nodes", "vertex_definitions": [ { "vertex_id_template": "{emp_id}", "vertex_label": "employee", "vertex_definition_id": "1", "vertex_properties": [ { "property_name": "name", "property_value_template": "{emp_name}", "property_value_type": "String" } ] } ] }, { "rule_id": "2", "rule_name": "edge_mapping_rule_from_emp", "table_name": "nodes", "edge_definitions": [ { "from_vertex": { "vertex_id_template": "{emp_id}", "vertex_definition_id": "1" }, "to_vertex": { "vertex_id_template": "{mgr_id}", "vertex_definition_id": "1" }, "edge_id_template": { "label": "reportsTo", "template": "{emp_id}_{mgr_id}" }, "edge_properties":[ { "property_name": "team", "property_value_template": "{team}", "property_value_type": "String" } ] } ] } ] }