

# DynamoDB에서 테이블 내보내기 요청
<a name="S3DataExport_Requesting"></a>

DynamoDB 테이블 내보내기를 사용하면 테이블 데이터를 Amazon S3 버킷으로 내보낼 수 있으므로, Athena, AWS Glue, Amazon SageMaker AI, Amazon EMR, AWS Lake Formation 등의 다른 AWS 서비스를 사용하여 데이터에 대한 분석과 복잡한 쿼리를 수행할 수 있습니다. AWS Management Console, AWS CLI 또는 DynamoDB API를 사용하여 DynamoDB 테이블 내보내기를 요청할 수 있습니다.

**참고**  
Amazon S3 요청자 지불 버킷은 지원되지 않습니다.

DynamoDB는 전체 내보내기와 증분 내보내기를 모두 지원합니다.
+ **전체 내보내기**를 사용하면 특정 시점 복구(PITR) 기간 내 어느 시점에서든 테이블의 전체 스냅샷을 Amazon S3 버킷으로 내보낼 수 있습니다.
+ **증분 내보내기**를 사용하면 PITR 기간 내에서 지정된 기간 사이에 변경, 업데이트 또는 삭제된 DynamoDB 테이블의 데이터를 Amazon S3 버킷으로 내보낼 수 있습니다.

**Topics**
+ [사전 조건](#S3DataExport_Requesting_Permissions)
+ [AWS Management Console을 사용하여 내보내기 요청](#S3DataExport_Requesting_Console)
+ [AWS Management Console에서 이전 내보내기에 대한 세부 정보 확인](#S3DataExport_Requesting_Console_Details)
+ [AWS CLI 및 AWS SDK를 사용하여 내보내기 요청](#S3DataExport_Requesting_CLI)
+ [AWS CLI 및 AWS SDK를 사용하여 이전 내보내기에 대한 세부 정보 확인](#S3DataExport_Requesting_CLI_Details)

## 사전 조건
<a name="S3DataExport_Requesting_Permissions"></a>

**PITR 활성화**

S3로 내보내기 기능을 사용하려면 테이블에서 PITR을 활성화해야 합니다. PITR을 활성화하는 방법에 대한 자세한 내용은 [시점 복구](PointInTimeRecovery_Howitworks.md)를 참조하세요. PITR이 활성화되지 않은 테이블에 대해 내보내기를 요청하는 경우 다음 예외 메시지와 함께 요청이 실패합니다. "An error occurred (PointInTimeRecoveryUnavailableException) when calling the `ExportTableToPointInTime` operation: Point in time recovery is not enabled for table 'my-dynamodb-table". 구성된 PITR `RecoveryPeriodInDays` 내에 있는 시점에서만 요청하고 내보낼 수 있습니다.

**S3 권한 설정**

쓸 수 있는 권한이 있는 Amazon S3 버킷으로 테이블 데이터를 내보낼 수 있습니다. 대상 버킷이 소스 테이블 소유자와 같은 AWS 리전에 있거나 소유자가 동일하지 않아도 됩니다. AWS Identity and Access Management(IAM) 정책에서 S3 작업(`s3:AbortMultipartUpload`, `s3:PutObject`, `s3:PutObjectAcl`) 및 DynamoDB 내보내기 작업(`dynamodb:ExportTableToPointInTime`)을 수행할 수 있도록 허용해야 합니다. 다음은 사용자에게 S3 버킷으로 내보내기를 수행할 수 있는 권한을 부여하는 샘플 정책의 예입니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowDynamoDBExportAction",
            "Effect": "Allow",
            "Action": "dynamodb:ExportTableToPointInTime",
            "Resource": "arn:aws:dynamodb:us-east-1:111122223333:table/my-table"
        },
        {
            "Sid": "AllowS3BucketWrites",
            "Effect": "Allow",
            "Action": [
                "s3:AbortMultipartUpload",
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
        }
    ]
}
```

------

다른 계정에 있는 Amazon S3 버킷에 쓰기 작업을 수행해야 하거나 쓰기 권한이 없는 경우, Amazon S3 버킷 소유자는 DynamoDB에서 해당 버킷으로 내보낼 수 있도록 허용하는 버킷 정책을 추가해야 합니다. 다음은 대상 Amazon S3 버킷에 대한 정책 예시입니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ExampleStatement",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/Dave"
            },
            "Action": [
                "s3:AbortMultipartUpload",
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
        }
    ]
}
```

------

내보내기가 진행 중일 때 이러한 권한을 취소하면 부분 파일이 생성됩니다.

**참고**  
내보내려는 테이블이나 버킷이 고객 관리형 키로 암호화된 경우 해당 KMS 키의 정책은 DynamoDB에 키를 사용할 수 있는 권한을 부여해야 합니다. 이 권한은 내보내기 작업을 트리거하는 IAM 사용자/역할을 통해 부여됩니다. 모범 사례를 포함한 암호화에 대한 자세한 내용은 [DynamoDB가 AWS KMS를 사용하는 방법](https://docs.aws.amazon.com/kms/latest/developerguide/services-dynamodb.html) 및 [사용자 지정 KMS 키 사용](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/encryption.howitworks.html#managed-key-customer-managed)을 참조하세요.

## AWS Management Console을 사용하여 내보내기 요청
<a name="S3DataExport_Requesting_Console"></a>

다음 예제에서는 DynamoDB 콘솔을 사용하여 `MusicCollection`이라는 기존 테이블을 내보내는 방법을 보여줍니다.

**참고**  
이 절차에서는 특정 시점으로 복구를 활성화했다고 가정합니다. `MusicCollection` 테이블에 대해 이 기능을 활성화하려면 테이블의 **개요** 탭에 있는 **테이블 세부 정보** 섹션에서 **특정 시점으로 복구**에 대해 **활성화**를 선택합니다.

**테이블 내보내기를 요청하려면**

1. AWS Management Console에 로그인하고 [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)에서 DynamoDB 콘솔을 엽니다.

1. 콘솔 왼쪽의 탐색 창에서 **S3로 내보내기(Exports to S3)**를 선택합니다.

1. **S3로 내보내기** 버튼을 선택합니다.

1. 소스 테이블과 대상 S3 버킷을 선택합니다. 사용자 계정이 대상 버킷을 소유한 경우 **Browse S3**(S3 찾아보기) 버튼을 클릭하여 찾을 수 있습니다. 그렇지 않은 경우, 버킷의 URL을 `s3://bucketname/prefix format.`으로 입력합니다. **prefix**는 대상 버킷을 체계적으로 구성된 상태로 유지하는 데 도움이 되는 선택적 폴더입니다.

1. **전체 내보내기** 또는 **증분 내보내기**를 선택합니다. **전체 내보내기**는 지정한 시점의 테이블의 전체 테이블 스냅샷을 출력합니다. **증분 내보내기**는 지정된 내보내기 기간 동안 테이블에 적용된 변경 사항을 출력합니다. 출력은 내보내기 기간의 최종 항목 상태만 포함하도록 압축됩니다. 동일한 내보내기 기간 내에 여러 번 업데이트된 경우에도 항목은 내보내기에 한 번만 표시됩니다.

------
#### [ Full export ]

   1. 전체 테이블 스냅샷을 내보낼 시점을 선택합니다. PITR 기간 내의 어느 시점이나 가능합니다. 또는 **현재 시간**을 선택하여 최신 스냅샷을 내보낼 수도 있습니다.

   1. **내보낸 파일 형식**에서 **DynamoDB JSON**과 **Amazon Ion** 중에 선택합니다. 기본적으로 테이블은 특정 시점으로 복구 기간 중 복원 가능한 마지막 시간부터 DynamoDB JSON 형식으로 내보내고 Amazon S3 키(SSE-S3)를 사용하여 암호화됩니다. 필요할 경우 이러한 내보내기 설정을 변경할 수 있습니다.
**참고**  
AWS Key Management Service(AWS KMS)에 의해 보호되는 키를 사용하여 내보내기를 암호화하도록 선택하는 경우 해당 키는 대상 S3 버킷과 동일한 리전에 있어야 합니다.

------
#### [ Incremental export ]

   1. 증분 데이터를 내보내려는 **내보내기 기간**을 선택합니다. PITR 기간에서 시작 시간을 선택합니다. 내보내기 기간은 15분 이상, 24시간 이하여야 합니다. 내보내기 기간의 시작 시간은 포함되며 종료 시간은 제외됩니다.

   1. **절대 모드**와 **상대 모드** 중에서 선택합니다.

      1. **절대 모드**는 지정된 기간 동안 증분 데이터를 내보냅니다.

      1. **상대 모드**는 내보내기 작업 제출 시간을 기준으로 하는 내보내기 기간 동안 증분 데이터를 내보냅니다.

   1. **내보낸 파일 형식**에서 **DynamoDB JSON**과 **Amazon Ion** 중에 선택합니다. 기본적으로 테이블은 특정 시점으로 복구 기간 중 복원 가능한 마지막 시간부터 DynamoDB JSON 형식으로 내보내고 Amazon S3 키(SSE-S3)를 사용하여 암호화됩니다. 필요할 경우 이러한 내보내기 설정을 변경할 수 있습니다.
**참고**  
AWS Key Management Service(AWS KMS)에 의해 보호되는 키를 사용하여 내보내기를 암호화하도록 선택하는 경우 해당 키는 대상 S3 버킷과 동일한 리전에 있어야 합니다.

   1. **보기 유형 내보내기**에서 **새 이미지와 이전 이미지** 또는 **새 이미지만**을 선택합니다. 새 이미지는 항목의 최신 상태를 제공합니다. 이전 이미지는 지정된 시작 날짜 및 시간 바로 이전의 항목 상태를 제공합니다. 기본 설정은 **새 이미지와 이전 이미지**입니다. 새 이미지와 이전 이미지에 대한 자세한 내용은 [증분 내보내기 출력](S3DataExport.Output.md#incremental-export-output) 섹션을 참조하세요.

------

1. 시작하려면 **내보내기**를 선택합니다.

내보낸 데이터는 트랜잭션에서 일관성이 없습니다. 트랜잭션 작업이 두 개의 내보내기 출력 사이에서 혼선을 겪을 수 있습니다. 트랜잭션 작업에 의해 수정된 항목 중 일부는 내보내기에 반영되는 반면, 동일한 트랜잭션에서 수정된 다른 일부 항목은 동일한 내보내기 요청에 반영되지 않을 수 있습니다. 하지만 내보내기는 결국에 일관되게 이루어집니다. 내보내기 중에 트랜잭션이 중단되는 경우 다음 번 연속 내보내기에서 중복 없이 남은 트랜잭션이 수행됩니다. 내보내기에 사용되는 기간은 내부 시스템 시계를 기준으로 하며 애플리케이션의 로컬 시계와 1분씩 달라질 수 있습니다.

## AWS Management Console에서 이전 내보내기에 대한 세부 정보 확인
<a name="S3DataExport_Requesting_Console_Details"></a>

이전에 실행한 내보내기 태스크에 대한 정보는 탐색 사이드바에서 **S3로 내보내기** 섹션을 선택하여 찾을 수 있습니다. 이 섹션에는 지난 90일간 생성한 모든 내보내기의 목록이 포함되어 있습니다. **내보내기** 탭에 나열된 태스크의 ARN을 선택하면 선택한 고급 구성 설정을 포함하여 해당 내보내기에 대한 정보가 검색됩니다. 내보내기 태스크 메타데이터는 90일이 지나면 만료되고 해당 기간보다 오래된 작업은 이 목록에서 더 이상 찾을 수 없지만 S3 버킷의 객체는 버킷 정책에서 허용하는 기간까지 유지됩니다. DynamoDB는 내보내기 중 S3 버킷에서 생성하는 객체를 삭제하지 않습니다.

## AWS CLI 및 AWS SDK를 사용하여 내보내기 요청
<a name="S3DataExport_Requesting_CLI"></a>

다음 예제에서는 기존 테이블을 S3 버킷으로 내보내는 방법을 보여줍니다.

**참고**  
이 절차에서는 특정 시점으로 복구를 활성화했다고 가정합니다. 다음 명령을 실행하여 `MusicCollection` 테이블에 대해 이 기능을 활성화하세요.  

```
aws dynamodb update-continuous-backups \
    --table-name MusicCollection \
    --point-in-time-recovery-specification PointInTimeRecoveryEnabled=True
```

**전체 내보내기**

------
#### [ AWS CLI ]

**참고**  
교차 계정 테이블 내보내기를 요청하는 경우 반드시 `--s3-bucket-owner` 옵션을 포함해야 합니다.

```
aws dynamodb export-table-to-point-in-time \
  --table-arn arn:aws:dynamodb:us-west-2:111122223333:table/MusicCollection \
  --s3-bucket ddb-export-musiccollection-9012345678 \
  --s3-prefix 2020-Nov \
  --export-format DYNAMODB_JSON \
  --export-time 1604632434 \
  --s3-bucket-owner 9012345678 \
  --s3-sse-algorithm AES256
```

------
#### [ Python ]

```
import boto3
from datetime import datetime

client = boto3.client('dynamodb')

client.export_table_to_point_in_time(
    TableArn='arn:aws:dynamodb:us-east-1:111122223333:table/TABLE',
    ExportTime=datetime(2023, 9, 20, 12, 0, 0),
    S3Bucket='bucket',
    S3Prefix='prefix',
    S3SseAlgorithm='AES256',
    ExportFormat='DYNAMODB_JSON'
)
```

------
#### [ Java ]

```
DynamoDbClient client = DynamoDbClient.create();

client.exportTableToPointInTime(b -> b
    .tableArn("arn:aws:dynamodb:us-east-1:111122223333:table/TABLE")
    .exportTime(Instant.parse("2023-09-20T12:00:00Z"))
    .s3Bucket("bucket")
    .s3Prefix("prefix")
    .s3SseAlgorithm(S3SseAlgorithm.AES256)
    .exportFormat(ExportFormat.DYNAMODB_JSON));
```

------
#### [ .NET ]

```
var client = new AmazonDynamoDBClient();

await client.ExportTableToPointInTimeAsync(new ExportTableToPointInTimeRequest
{
    TableArn = "arn:aws:dynamodb:us-east-1:111122223333:table/TABLE",
    ExportTime = new DateTime(2023, 9, 20, 12, 0, 0, DateTimeKind.Utc),
    S3Bucket = "bucket",
    S3Prefix = "prefix",
    S3SseAlgorithm = S3SseAlgorithm.AES256,
    ExportFormat = ExportFormat.DYNAMODB_JSON
});
```

------
#### [ JavaScript ]

```
import { DynamoDBClient, ExportTableToPointInTimeCommand } from "@aws-sdk/client-dynamodb";

const client = new DynamoDBClient();

await client.send(new ExportTableToPointInTimeCommand({
    TableArn: "arn:aws:dynamodb:us-east-1:111122223333:table/TABLE",
    ExportTime: new Date("2023-09-20T12:00:00Z"),
    S3Bucket: "bucket",
    S3Prefix: "prefix",
    S3SseAlgorithm: "AES256",
    ExportFormat: "DYNAMODB_JSON"
}));
```

------
#### [ Go ]

```
cfg, _ := config.LoadDefaultConfig(context.TODO())
client := dynamodb.NewFromConfig(cfg)

exportTime := time.Date(2023, 9, 20, 12, 0, 0, 0, time.UTC)
client.ExportTableToPointInTime(context.TODO(), &dynamodb.ExportTableToPointInTimeInput{
    TableArn:       aws.String("arn:aws:dynamodb:us-east-1:111122223333:table/TABLE"),
    ExportTime:     &exportTime,
    S3Bucket:       aws.String("bucket"),
    S3Prefix:       aws.String("prefix"),
    S3SseAlgorithm: types.S3SseAlgorithmAes256,
    ExportFormat:   types.ExportFormatDynamodbJson,
})
```

------

**증분 내보내기**

------
#### [ AWS CLI ]

```
aws dynamodb export-table-to-point-in-time \
  --table-arn arn:aws:dynamodb:REGION:ACCOUNT:table/TABLENAME \
  --s3-bucket BUCKET --s3-prefix PREFIX \
  --incremental-export-specification ExportFromTime=1693569600,ExportToTime=1693656000,ExportViewType=NEW_AND_OLD_IMAGES \
  --export-type INCREMENTAL_EXPORT
```

------
#### [ Python ]

```
import boto3
from datetime import datetime

client = boto3.client('dynamodb')

client.export_table_to_point_in_time(
    TableArn='arn:aws:dynamodb:us-east-1:111122223333:table/TABLE',
    IncrementalExportSpecification={
      'ExportFromTime': datetime(2023, 9, 20, 12, 0, 0),
      'ExportToTime': datetime(2023, 9, 20, 13, 0, 0),
      'ExportViewType': 'NEW_AND_OLD_IMAGES'
    },
    ExportType='INCREMENTAL_EXPORT',
    S3Bucket='bucket',
    S3Prefix='prefix',
    S3SseAlgorithm='AES256',
    ExportFormat='DYNAMODB_JSON'
)
```

------
#### [ Java ]

```
DynamoDbClient client = DynamoDbClient.create();

client.exportTableToPointInTime(b -> b
    .tableArn("arn:aws:dynamodb:us-east-1:111122223333:table/TABLE")
    .exportType(ExportType.INCREMENTAL_EXPORT)
    .incrementalExportSpecification(i -> i
        .exportFromTime(Instant.parse("2023-09-20T12:00:00Z"))
        .exportToTime(Instant.parse("2023-09-20T13:00:00Z"))
        .exportViewType(ExportViewType.NEW_AND_OLD_IMAGES))
    .s3Bucket("bucket")
    .s3Prefix("prefix")
    .s3SseAlgorithm(S3SseAlgorithm.AES256)
    .exportFormat(ExportFormat.DYNAMODB_JSON));
```

------
#### [ .NET ]

```
var client = new AmazonDynamoDBClient();

await client.ExportTableToPointInTimeAsync(new ExportTableToPointInTimeRequest
{
    TableArn = "arn:aws:dynamodb:us-east-1:111122223333:table/TABLE",
    ExportType = ExportType.INCREMENTAL_EXPORT,
    IncrementalExportSpecification = new IncrementalExportSpecification
    {
        ExportFromTime = new DateTime(2023, 9, 20, 12, 0, 0, DateTimeKind.Utc),
        ExportToTime = new DateTime(2023, 9, 20, 13, 0, 0, DateTimeKind.Utc),
        ExportViewType = ExportViewType.NEW_AND_OLD_IMAGES
    },
    S3Bucket = "bucket",
    S3Prefix = "prefix",
    S3SseAlgorithm = S3SseAlgorithm.AES256,
    ExportFormat = ExportFormat.DYNAMODB_JSON
});
```

------
#### [ JavaScript ]

```
import { DynamoDBClient, ExportTableToPointInTimeCommand } from "@aws-sdk/client-dynamodb";

const client = new DynamoDBClient();

await client.send(new ExportTableToPointInTimeCommand({
    TableArn: "arn:aws:dynamodb:us-east-1:111122223333:table/TABLE",
    ExportType: "INCREMENTAL_EXPORT",
    IncrementalExportSpecification: {
        ExportFromTime: new Date("2023-09-20T12:00:00Z"),
        ExportToTime: new Date("2023-09-20T13:00:00Z"),
        ExportViewType: "NEW_AND_OLD_IMAGES"
    },
    S3Bucket: "bucket",
    S3Prefix: "prefix",
    S3SseAlgorithm: "AES256",
    ExportFormat: "DYNAMODB_JSON"
}));
```

------
#### [ Go ]

```
cfg, _ := config.LoadDefaultConfig(context.TODO())
client := dynamodb.NewFromConfig(cfg)

fromTime := time.Date(2023, 9, 20, 12, 0, 0, 0, time.UTC)
toTime := time.Date(2023, 9, 20, 13, 0, 0, 0, time.UTC)
client.ExportTableToPointInTime(context.TODO(), &dynamodb.ExportTableToPointInTimeInput{
    TableArn:   aws.String("arn:aws:dynamodb:us-east-1:111122223333:table/TABLE"),
    ExportType: types.ExportTypeIncrementalExport,
    IncrementalExportSpecification: &types.IncrementalExportSpecification{
        ExportFromTime: &fromTime,
        ExportToTime:   &toTime,
        ExportViewType: types.ExportViewTypeNewAndOldImages,
    },
    S3Bucket:       aws.String("bucket"),
    S3Prefix:       aws.String("prefix"),
    S3SseAlgorithm: types.S3SseAlgorithmAes256,
    ExportFormat:   types.ExportFormatDynamodbJson,
})
```

------

**참고**  
AWS Key Management Service(AWS KMS)에 의해 보호되는 키를 사용하여 내보내기를 암호화하도록 선택하는 경우 해당 키는 대상 S3 버킷과 동일한 리전에 있어야 합니다.

## AWS CLI 및 AWS SDK를 사용하여 이전 내보내기에 대한 세부 정보 확인
<a name="S3DataExport_Requesting_CLI_Details"></a>

이전에 실행한 내보내기 요청에 대한 정보는 `list-exports` 명령을 사용하여 확인할 수 있습니다. 이 명령은 지난 90일간 생성한 모든 내보내기의 목록을 반환합니다. 내보내기 태스크 메타데이터는 90일이 지나면 만료되고 해당 기간보다 오래된 작업은 `list-exports` 명령에서 더 이상 반환하지 않지만 S3 버킷의 객체는 버킷 정책에서 허용하는 기간까지 유지됩니다. DynamoDB는 내보내기 중 S3 버킷에서 생성하는 객체를 삭제하지 않습니다.

내보내기는 성공 또는 실패할 때까지의 `PENDING` 상태를 유지합니다. 성공하면 상태가 `COMPLETED`로 바뀝니다. 실패하면 상태가 `FAILED`로 바뀌고 `failure_message` 및 `failure_reason`이 표시됩니다.

**내보내기 나열**

------
#### [ AWS CLI ]

```
aws dynamodb list-exports \
    --table-arn arn:aws:dynamodb:us-east-1:111122223333:table/ProductCatalog
```

------
#### [ Python ]

```
import boto3

client = boto3.client('dynamodb')

print(
  client.list_exports(
     TableArn='arn:aws:dynamodb:us-east-1:111122223333:table/TABLE',
  )
)
```

------
#### [ Java ]

```
DynamoDbClient client = DynamoDbClient.create();

ListExportsResponse response = client.listExports(b -> b
    .tableArn("arn:aws:dynamodb:us-east-1:111122223333:table/TABLE"));

response.exportSummaries().forEach(System.out::println);
```

------
#### [ .NET ]

```
var client = new AmazonDynamoDBClient();

var response = await client.ListExportsAsync(new ListExportsRequest
{
    TableArn = "arn:aws:dynamodb:us-east-1:111122223333:table/TABLE"
});

response.ExportSummaries.ForEach(Console.WriteLine);
```

------
#### [ JavaScript ]

```
import { DynamoDBClient, ListExportsCommand } from "@aws-sdk/client-dynamodb";

const client = new DynamoDBClient();

const response = await client.send(new ListExportsCommand({
    TableArn: "arn:aws:dynamodb:us-east-1:111122223333:table/TABLE"
}));

console.log(response.ExportSummaries);
```

------
#### [ Go ]

```
cfg, _ := config.LoadDefaultConfig(context.TODO())
client := dynamodb.NewFromConfig(cfg)

response, _ := client.ListExports(context.TODO(), &dynamodb.ListExportsInput{
    TableArn: aws.String("arn:aws:dynamodb:us-east-1:111122223333:table/TABLE"),
})

fmt.Println(response.ExportSummaries)
```

------

**내보내기 설명**

------
#### [ AWS CLI ]

```
aws dynamodb describe-export \
    --export-arn arn:aws:dynamodb:us-east-1:111122223333:table/ProductCatalog/export/01695353076000-a1b2c3d4
```

------
#### [ Python ]

```
import boto3

client = boto3.client('dynamodb')

print(
  client.describe_export(
     ExportArn='arn:aws:dynamodb:us-east-1:111122223333:table/TABLE/export/01695353076000-06e2188f',
  )['ExportDescription']
)
```

------
#### [ Java ]

```
DynamoDbClient client = DynamoDbClient.create();

DescribeExportResponse response = client.describeExport(b -> b
    .exportArn("arn:aws:dynamodb:us-east-1:111122223333:table/TABLE/export/01695353076000-06e2188f"));

System.out.println(response.exportDescription());
```

------
#### [ .NET ]

```
var client = new AmazonDynamoDBClient();

var response = await client.DescribeExportAsync(new DescribeExportRequest
{
    ExportArn = "arn:aws:dynamodb:us-east-1:111122223333:table/TABLE/export/01695353076000-06e2188f"
});

Console.WriteLine(response.ExportDescription);
```

------
#### [ JavaScript ]

```
import { DynamoDBClient, DescribeExportCommand } from "@aws-sdk/client-dynamodb";

const client = new DynamoDBClient();

const response = await client.send(new DescribeExportCommand({
    ExportArn: "arn:aws:dynamodb:us-east-1:111122223333:table/TABLE/export/01695353076000-06e2188f"
}));

console.log(response.ExportDescription);
```

------
#### [ Go ]

```
cfg, _ := config.LoadDefaultConfig(context.TODO())
client := dynamodb.NewFromConfig(cfg)

response, _ := client.DescribeExport(context.TODO(), &dynamodb.DescribeExportInput{
    ExportArn: aws.String("arn:aws:dynamodb:us-east-1:111122223333:table/TABLE/export/01695353076000-06e2188f"),
})

fmt.Println(response.ExportDescription)
```

------