2017-02-09 49 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 

注:數據庫文件的命名是有點定義模糊的(至少,我的命名標準非常有限的搜索不轉了多少)。您可能需要仔細研究一下,找出預期的確切命名。