DynamoDB加载旧的本地数据库文件

时间:2017-02-09 20:13:28

标签: python amazon-web-services amazon-dynamodb

前段时间我将一堆JSON数据加载到本地DynamoDB实例中进行练习。我做了一些查询并将数据存储到CSV中,最后关闭了我的连接。

所以我的笔记本电脑上有sample_data.db个文件,大小为7GB,需要再次访问。通常,当我创建DynamoDB实例时,我会说:

java \
    -Djava.library.path=./DynamoDBLocal_lib \
    -jar DynamoDBLocal.jar \
    -dbPath /Users/myname/Documents/data/sample_data.db

所以我这样做是为了创建文件,但是现在如何打开与该预先存在的文件的另一个连接?每当我做上述事情时,它只会说:

Invalid directory for database creation.

显然,这意味着上述命令仅用于创建新数据库 - 对不起,如果这是一个微不足道的问题,但如何打开与旧数据库的连接?

我是否必须以某种方式将其上传到AWS?或者有办法吗?

编辑:我使用它作为参考,但没有看到指定预先存在的数据库的路径的命令。 http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html

1 个答案:

答案 0 :(得分:0)

问题的根源在于本地DynamoDB不允许您直接指定数据库文件名,只允许存储/加载文件的路径。文件名是从您的DynamoDB本地和AWS区域的AWS访问密钥派生的。或者,如果指定-sharedDb选项,则单个数据库文件将存储为shared-local-instance.db。 -dbPath选项定义DynamoDB本地实例应查找这些数据库文件的位置。

为了加载旧的数据库文件,我建议将其重命名以符合命名约定(以便DynamoDB识别它),并指定不带文件名部分的-dbPath选项。希望这可以让您访问您的数据。

示例:

mv sample_data.db shared-local-instance.db
java \
    -Djava.library.path=./DynamodDBLocal_lib \
    -jar DynamoDBLocal.jar \
    -dbPath /Users/myname/Documents/data

注意:数据库文件命名有点模糊(至少,我对命名标准的搜索非常有限)。您可能需要稍微调整一下以找出预期的确切命名。