Membuat Neptunus GraphMappingConfig - Amazon Neptune

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Membuat Neptunus GraphMappingConfig

GraphMappingConfig yang Anda buat menentukan bagaimana data diekstrak dari penyimpanan sumber data harus dimuat ke dalam klaster DB Neptune. Formatnya berbeda tergantung apakah itu dimaksudkan untuk memuat data RDF atau untuk memuat data properti-grafik.

Untuk data RDF, Anda dapat menggunakan bahasa W3 R2RML untuk pemetaan data relasional ke RDF.

Jika Anda memuat data properti-grafik yang akan bertanya menggunakan Gremlin, Anda membuat objek JSON untuk GraphMappingConfig.

GraphMappingConfig Tata Letak untuk Data RDF/SPARQL

Jika Anda memuat data RDF yang akan dikueri menggunakan SPARQL, Anda menulis GraphMappingConfig di R2RML. R2RML adalah bahasa W3 standar untuk pemetaan data relasional untuk RDF. Inilah satu contohnya:

@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" ]; ] .

Inilah contoh lainnya:

@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" ] ] .

Rekomendasi W3 di R2RLL: Pemetaan Bahasa RDB ke RDF menyediakan rincian bahasa.

GraphMappingConfig Tata Letak untuk Property-Graph/Data Gremlin

GraphMappingConfig yang komparabel untuk data properti-grafik adalah objek JSON yang menyediakan aturan pemetaan untuk setiap entitas grafik yang akan dihasilkan dari data sumber. Templat berikut menunjukkan seperti apa penampakan setiap aturan dalam objek ini.

{ "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)" } ] } ] } ] }

Perhatikan bahwa kehadiran label vertex menyiratkan bahwa vertex sedang dibuat di sini, sedangkan ketiadaannya menyiratkan bahwa vertex dibuat oleh sumber yang berbeda, dan definisi ini hanya menambahkan properti vertex.

Berikut adalah contoh aturan untuk catatan karyawan:

{ "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" } ] } ] } ] }