2017-02-09 51 views
0

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

所以我在我的笔记本电脑上有这个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

问题的根源在于,本地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 

注:数据库文件的命名是有点定义模糊的(至少,我的命名标准非常有限的搜索不转了多少)。您可能需要仔细研究一下,找出预期的确切命名。