首页 > 解决方案 > CosmosDB Gremlin API - 如何通过 Azure 数据工厂插入批量数据(例如 json 到 cosmos graph db)

问题描述

我正在使用这个 json 插入顶点...

{
    "id": "15",
    "label": "organization",
    "orgid": [{
        "_value": "15",
        "id": "5267ec4b-a39e-4d77-8dea-668cb36307bc"
    }],
    "name": [{
        "_value": "org.15",
        "id": "2e5271a6-ddd8-48b9-8ff6-be41e19f82f8"
    }],
    "org": "org"
}

...并且它工作正常..但问题是当我尝试插入 Edge 时 ..这是我的 Edge json ... 模式 1:

{
    "label": "parent",
    "id": "b9ae257a-ab49-487b-a165-57bd5330168b",
    "_sink": "15",
    "_sinkLabel": "organization",
    "_sinkPartition": "org|10",
    "_vertexId": "10",
    "_vertexLabel": "organization",
    "_isEdge": true,
    "org": "org"
}

模式 2。

{
    "id": "b9ae257a-ab49-487b-a165-57bd5330168b",
    "label": "parent",
    "type": "edge",
    "inVLabel": "organization",
    "outVLabel": "organization",
    "inV": "15",
    "outV": "1"
}

..我都试过了,但没有结果......它保存为顶点而不是边缘......

请有人帮我弄清楚...我需要有效的json格式来插入Edge ...

谢谢!


注意:从我已经这样做的代码后面,现在我的挑战是使用 Azure 数据工厂“复制”活动将 BULK 数据从 json 保存到 Cosmos Graph DB (Gremlin API)。


标签: bulkinsertazure-data-factory-2azure-cosmosdb-gremlinapi

解决方案


您在这里真正想要做的是使用您的 Gremlin API 帐户公开的所谓“.NET SDK URI”(不是默认的 Gremlin 端点)-您可以在 Cosmos DB 帐户的 Azure 门户的概述页面中找到它-这个公开了 Gremlin API 鲜为人知的特性,即与 SQL API 的互操作性,后者是 Cosmos DB API 的核心,更适合批量操作。因此,一旦您确定了图中顶点和边的确切数据模型,只需使用此 .NET SDK 端点从 ADF 填充您的容器,就好像它是另一个 SQL API 帐户一样。一旦所有顶点和边都到位,您就可以使用 Gremlin 端点与图形进行交互。


推荐阅读