How can I import bulk data from a CSV file into DynamoDB?

后端 未结 14 1847
我在风中等你
我在风中等你 2021-01-31 15:08

I am trying to import a CSV file data into AWS DynamoDB.

Here\'s what my CSV file looks like:

first_name  last_name
sri ram
Rahul   Dravid
JetPay  Underw         


        
14条回答
  •  不知归路
    2021-01-31 15:50

    Follow the instruction in the following link to import data to existing tables in DynamoDB:

    https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/SampleData.LoadData.html

    Please note, the name of the tables is what you must find here: https://console.aws.amazon.com/dynamodbv2/home

    And the name of the table is used inside the json file, the name of the json file itself is not important. For example I have a table as Country-kdezpod7qrap7nhpjghjj-staging, then for importing data to that table I must make a json file like this:

    {
        "Country-kdezpod7qrap7nhpjghjj-staging": [
            {
                "PutRequest": {
                    "Item": {
                          "id": {
                            "S": "ir"
                          },
                          "__typename": {
                            "S": "Country"
                          },
                          "createdAt": {
                            "S": "2021-01-04T12:32:09.012Z"
                          },
                          "name": {
                            "S": "Iran"
                          },
                          "self": {
                            "N": "1"
                          },
                          "updatedAt": {
                            "S": "2021-01-04T12:32:09.012Z"
                          }
                    }
                }
            }        
        ]
    }
    

    If you don't know how to create the items for each PutRequest then you can create an item in your DB with mutation and then try to duplicate it, then it will show the structure of one item for you:

    If you have a huge list of items in your CSV file, you can use the following npm tool to generate the json file:

    https://www.npmjs.com/package/json-dynamo-putrequest

    Then we can use the following command to import the data:

    aws dynamodb batch-write-item --request-items file://Country.json
    

    If it import the data successfully, you must see the following output:

    {
        "UnprocessedItems": {}
    }
    

    Also please note that with this method you can only have 25 PutRequest items in your array. So if you want to push 100 items you need to create 4 files.

提交回复
热议问题