2014-11-09 3 views
-1

Dynamo DB에 데이터 세트를 성공적으로로드했습니다. 그런 다음 Dynamo DB에서 데이터를 읽고 .csv 파일로로드하려고합니다. 이 파일을 weka가 사용하여 클러스터를 개발하십시오. 불행히도 다이나모 DB에서 읽는 데이터는 단지 .csv 파일로 적습니다. 다음은 Dynamo DB에서 데이터를 읽는 스 니펫입니다. 내 Dynamo DB에 2201 개의 레코드가 있지만 1986 번째 레코드와 3 번째 열에 파일에 쓰는 것을 갑자기 중단합니다. 클라우드에서 온라인으로 찾을 수있는 모든 가능한 솔루션을 시도했지만 해결할 수 없었습니다. 친절하게 누군가 나를 도와주세요.데이터가 Dynamo DB에서 csv 파일로의 쓰기가 갑자기 중지됨

// dynamobb에서 데이터를 스캔

ScanRequest scanRequest = new ScanRequest().withTableName(tablename[2]); 
ScanResult result = client.scan(scanRequest); 
for (Map<String, AttributeValue> item : result.getItems()){ 
     printItem(item,writer); 
} 

// 빈 CSV 파일로 데이터를 추가

private static void printItem(Map<String, AttributeValue> attributeList,FileWriter writer) { 
    int i=1; 
    System.out.println("Inside printItem"); 
    try{ 
     int k=1; 
    for (Map.Entry<String, AttributeValue> item : attributeList.entrySet()) { 
     AttributeValue value = item.getValue(); 
     String valueName= value.getS(); 
     writer.append(valueName); 
     if(k<=4){ 
     writer.append(','); 
     } 
     ++i; 
     ++k; 
    } 
    writer.append('\n'); 
    ++count; 
    } 
    catch (IOException e) { 
     e.printStackTrace(); 
} 
} 
+0

전체 데이터 세트가 처음에 반환되는 것이 확실합니까? –

+0

방금 ​​확인했습니다. 전체 데이터를 읽지는 않습니다. 그래서 Dynamo DB에서 잘못된 것을 읽으려는 성명서. – kirti

+0

누락 된 레코드를 확인하고이를 사용하여 이유를 파악해야합니다. –

답변

0

당신에 의해 반복적으로 계속 전화 할 수 있도록 스캔, 매겨진 API입니다 LastEvaluatedKey를 ExclusiveStartKey로서 건네줍니다. 자세한 내용은 developer guideapi docs입니다.

DynamoDBMapper sdk 및 문서 SDK (모두 aws-java-sdk와 함께 제공됨)는 자동 페이지 매김 API를 제공하므로 페이징 대신 테이블을 Iterable로 처리 할 수 ​​있습니다. this section of the developer guide에서 페이지 매김을 수행하는 것처럼 하위 수준 Java SDK를 사용하는 예가 있습니다.

+0

또한 테이블을 CSV 파일로 내보내려면 데이터 파이프 라인을 사용하여 일정에 따라 S3의 CSV 파일로 테이블을 내보낼 수있는 EMR 통합에 관심이있을 수 있습니다. http : // docs .aws.amazon.com/amazondynamodb/latest/developerguide/OtherServices.html –