Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python DynamoDB加载旧的本地数据库文件_Python_Amazon Web Services_Amazon Dynamodb - Fatal编程技术网

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

Python DynamoDB加载旧的本地数据库文件,python,amazon-web-services,amazon-dynamodb,Python,Amazon Web Services,Amazon Dynamodb,不久前,我将一堆JSON数据加载到本地DynamoDB实例中进行实践。我做了一些查询并将数据存储到CSV中,最后关闭了连接 因此,我的笔记本电脑上有一个7GB的sample_data.db文件,需要再次访问它。通常,当我创建DynamoDB实例时,我会说: java \ -Djava.library.path=./DynamoDBLocal_lib \ -jar DynamoDBLocal.jar \ -dbPath /Users/myname/Documents/dat

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

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

java \
    -Djava.library.path=./DynamoDBLocal_lib \
    -jar DynamoDBLocal.jar \
    -dbPath /Users/myname/Documents/data/sample_data.db
所以我这样做是为了创建文件,但是我现在如何打开与该预先存在的文件的另一个连接?每当我做上述操作时,它只会说:

Invalid directory for database creation.
很明显,这意味着上面的命令只用于创建一个新的DB-如果这是一个微不足道的问题,那么很抱歉,但是我如何打开到旧DB的连接呢

我一定要上传到AWS吗?还是有办法


编辑:我使用它作为参考,但没有看到一个命令来指定一个预先存在的数据库的路径

问题的根源在于,本地DynamoDB不允许您直接指定数据库文件名,只允许指定存储/加载文件的路径。文件名源自DynamoDB local和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
注意:数据库文件命名的定义有点模糊(至少,我对命名标准的搜索非常有限,没有找到太多)。您可能需要仔细研究一下,以确定预期的确切名称