前段时间我将一堆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
答案 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
注意:数据库文件命名有点模糊(至少,我对命名标准的搜索非常有限)。您可能需要稍微调整一下以找出预期的确切命名。