Android

1006. (Android/Java) 안드로이드 AWS DynamoDB 다이나모 DB 특정 테이블 전체 데이터 스캔 수행

투케이2K 2025. 7. 16. 21:47
728x90

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Java / Kotlin

 

[소스 코드]

// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------

- 언어 : Java / Kotlin

- 개발 툴 : AndroidStudio

- 기술 구분 : AWS / DynamoDB / NoSql

- 사전) AWS 의존성 부여 설정

  // --------------------------------------------
  // [Aws S3 연동 build.gradle 라이브러리 정의] : targetSdk 33 ~ 34
  // --------------------------------------------
  /**
    * implementation 'com.amazonaws:aws-android-sdk-kms:2.57.0'
    * implementation 'com.amazonaws:aws-android-sdk-s3:2.57.0'
    * implementation 'com.amazonaws:aws-android-sdk-iot:2.57.0'
    * implementation 'com.amazonaws:aws-android-sdk-mobile-client:2.57.0'
    * implementation 'com.amazonaws:aws-android-sdk-kinesisvideo:2.57.0'
    * implementation 'com.amazonaws:aws-android-sdk-ddb:2.57.0'
    * */

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------

// ------------------------------------------------------------
// [변수 선언]
// ------------------------------------------------------------
String ACCESS_KEY = "AD .. PO";
String SECRET_KEY = "zI .. KI";
String REGION = "ap-northeast-2";

String TABLE_NAME = "TEST_TB";

int LIMIT = 10; // [최대 스캔 개수]


// ------------------------------------------------------------
// TODO [http 통신을 수행하므로 Thread 처리 수행]
// ------------------------------------------------------------
new Thread(){
    @Override
    public void run(){

        // [AWS 자격 증명 설정]
        AWSCredentials credentials = new BasicAWSCredentials(ACCESS_KEY, SECRET_KEY);


        // [AmazonDynamoDBClient 생성]
        AmazonDynamoDBClient dynamoDBClient = new AmazonDynamoDBClient(credentials);

        if (C_Util.stringNotNull(REGION) == true){ // TODO [리전 정보 설정]
            //dynamoDBClient.setRegion(Region.getRegion("ap-northeast-1"));
            dynamoDBClient.setRegion(Region.getRegion(REGION));
        }


        // [ScanRequest 생성]
        ScanRequest scanRequest = new ScanRequest()
                .withTableName(TABLE_NAME) // [DynamoDB 특정 테이블 명칭]
                .withLimit(LIMIT); // [withLimit 출력 제한 개수]


        // [로직 처리 수행]
        try {

            // TODO [dynamoDBClient ScanResult 응답 확인]
            ScanResult result = dynamoDBClient.scan(scanRequest);


            // TODO [ScanResult null 체크]
            if (result != null){

                List<Map<String, AttributeValue>> list = result.getItems();

                if (list != null && list.size()>0){

                    for (int i=0; i<list.size(); i++){

                        Map<String, AttributeValue> item = list.get(i);

                        S_Log.w("KWON_TWOK", ">>>>>>>>>>>>>>>>>>>>>> ["+String.valueOf(item)+"] >>>>>>>>>>>>>>>>>>>>>>");
                        
                    }

                    S_Log._W_(ACTIVITY_NAME + " :: getTableFullScan :: AWS 특정 테이블 데이터 전체 스캔 완료", new String[]{
                            "List Size :: " + String.valueOf(returnData.size()),
                    });

                }
                else {
                    S_Log._E_(ACTIVITY_NAME + " :: getTableFullScan :: AWS 특정 테이블 데이터 전체 스캔 완료", new String[]{
                            "List Size :: getItems List Is Null",
                    });

                }

            }
            else {
                S_Log._E_(ACTIVITY_NAME + " :: getTableFullScan :: AWS 특정 테이블 데이터 전체 스캔 실패", new String[]{"ScanResult Is Null"});

            }

        } catch (Exception es) {
            es.printStackTrace();

        }

    }

}.start();

// --------------------------------------------------------------------------------------





// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

[Aws NoSQL DynamoDB Service] Aws Dynamo DB 다이나모 디비 개념 및 설명 정리

https://blog.naver.com/kkh0977/223734725747?trackingCode=blog_bloghome_searchlist


[Aws NoSQL DynamoDB Service] AWS 콘솔에서 다이나모 데이터베이스 ( Dynamo DB ) 테이블에 저장 된 데이터 조회 방법

https://blog.naver.com/kkh0977/223933617765?trackingCode=blog_bloghome_searchlist

// --------------------------------------------------------------------------------------
 
728x90
반응형