有没有办法将csv数据批量导入cosmos db gremlin API Azure?

问题描述 投票:0回答:1

我是 Azure Cosmos db 新手,我必须将数据导入到我的 Cosmos db 帐户中。

我已经尝试过https://learn.microsoft.com/en-us/azure/cosmos-db/gremlin/bulk-executor-dotnet#java

在此链接中,他们从预定义的种子值中导入了一些随机生成的值:SeedGenerationValues.java(或者我认为是这样。)

有没有一种方法可以输入一些 csv 和图表的架构并获得完整的图表?

我尝试将每条记录更改为gremlin查询,并尝试从本地插入数据:DataWeekender-DataLoad.ipynb

但这效率非常低,并且需要花费大量时间来导入大型数据集(有 100 万条记录)。有没有类似Microsoft Azure提供的批量导入的方式,可以将数据高效导入到gremlin cosmos db中?

是否有一个存储库可供我使用,我可以简单地将 csv 数据和模式作为输入并获取完整的图表,就像我们在 neo4j 中所做的那样并导入数据?

neo4j graphql gremlin azure-cosmosdb-gremlinapi
1个回答
0
投票

有没有办法将 csv 数据批量导入到 cosmos db gremlin API Azure

要将

.csv
文件导入 Azure Cosmos DB Gremlin API,可以使用以下代码。以下是将数据导入 Cosmos DB Gremlin API 容器的
.NET
代码。

class Program
    {
        static async Task Main(string[] args)
        {
            string connectionString = "*****";
            CosmosClient client = new CosmosClient(connectionString);
            var database = client.GetDatabase("newdb");
            var container = database.GetContainer("Graph1");

            using (var reader = new StreamReader("C:\\Users\\****\\****\\Desktop\\MyTrails\\firstFile.csv"))
            using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
            {
                var records = csv.GetRecords<MyData>();

                foreach (var record in records)
                {
                    dynamic vertex = new
                    {
                        id = record.Id.ToString(),
                        label = "Person",
                        name = record.Name,
                        age = record.Age
                    };

                    try
                    {
                        await container.CreateItemAsync(vertex);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine($"Failed to insert record with id{record.Id}: {ex.Message}");
                    }
                }
            }
        }
    }

    public class MyData
    {
        [Index(0)]
        public int Id { get; set; }

        [Index(1)]
        public string Name { get; set; }

        [Index(2)]
        public int Age { get; set; }
    }

输出: enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.