S3 데이터 소스 구성
Amazon S3(Simple Storage Service)는 Amazon AWS가 제공하는 오브젝트 스토리지 서비스이며, 전 세계에서 가장 널리 사용되는 클라우드 스토리지 솔루션 중 하나입니다.
사용 제한
현재는 다음 구성 방식만 지원합니다.
- S3 데이터 소스 읽기(오프라인 읽기) 및 AE 사전 설정 스토리지 공간 테이블로 쓰기 지원
- AE 사전 설정 스토리지 공간 테이블에서 S3로 쓰기 지원(오프라인 쓰기)
참고:
- S3에서 AE 사전 설정 스토리지가 아닌 다른 데이터베이스로 직접 쓰는 것은 아직 지원하지 않습니다
지원 필드 타입
| 파일 유형 | 필드 타입 | 오프라인 읽기(Reader) | 오프라인 쓰기(Writer) |
|---|---|---|---|
orc parquet | boolean | 지원 | 지원 |
| tinyint | 지원 | 지원 | |
| smallint | 지원 | 지원 | |
| integer | 지원 | 지원 | |
| bigint | 지원 | 지원 | |
| real | 지원 | 지원 | |
| double | 지원 | 지원 | |
| decimal | 지원 | 지원 | |
| varchar | 지원 | 지원 | |
| char | 지원 | 지원 | |
| varbinary | 미지원 | 미지원 | |
| date | 지원 | 지원 | |
| timestamp | 지원 | 지원 | |
| array | 지원 | 지원 | |
| row | 지원 | 지원 | |
| map | 지원 | 지원 | |
| csv | string | 지원. 단일 문자 열 구분 기호 또는 \t(Tab)를 설정할 수 있으며 기본값은 쉼표입니다. 자세한 내용은 CSV, Text 파일 읽기 규칙을 참고하십시오. | 쓰기 지원. 열 구분 기호의 기본값은 쉼표입니다. 설정 항목은 CSV, Text 파일 쓰기 규칙을 참고하십시오. |
| text | string | 지원. 열 구분 기호는 정규표현식으로 해석되며 기본값은 쉼표입니다. 자세한 내용은 CSV, Text 파일 읽기 규칙을 참고하십시오. | 쓰기 지원. 열 구분 기호의 기본값은 쉼표입니다. 설정 항목은 CSV, Text 파일 쓰기 규칙을 참고하십시오. |
| json | string | 제한적 지원. 파일 구분 기호가 쉼표인 경우만 지원 | 제한적 지원. 파일 구분 기호가 쉼표인 경우만 지원 |
S3 데이터 소스 생성
데이터 개발 플랫폼 - 통합 모듈에서 S3 데이터 소스 추가를 선택할 수 있습니다.
데이터 소스 설정 파라미터 정보
데이터 소스에 필요한 설정 정보를 입력하고 연결 테스트를 완료하면 S3 데이터 소스가 생성됩니다.
파라미터 이름 앞에 *가 있는 항목은 필수 파라미터이고, *가 없는 항목은 선택 파라미터입니다.
| 필드 이름 | 설명 |
|---|---|
| 기본 정보 | |
| *데이터 소스 이름 | 데이터 개발 플랫폼 공간 내에서 고유해야 하며, 영문자, 숫자, 밑줄로 구성하고 숫자나 밑줄로 시작할 수 없습니다 |
| 비고 | 선택 사항 |
| 데이터 소스 설정 | |
| 환경 구분 없음 / 독립 환경 설정 | 둘 중 하나 선택: 환경 구분 없음은 운영 환경과 개발 환경이 하나의 설정을 공유하고, 독립 환경 설정은 두 환경을 각각 독립적으로 설정합니다 |
| *Endpoint | S3 접근 주소 |
| *리전(Region) | 예: ap-northeast-1 |
| *Bucket | S3 Bucket 주소. 예: S3://seatunnel-test |
| *Access Key | 접근에 사용하는 Access Key |
| *Access Secret | 접근에 사용하는 Access Secret |
| 고급 설정 | 데이터베이스 연결에 필요한 기타 고급 파라미터. 직접 입력할 수 있습니다 |
파라미터 이름 앞에 *가 있는 항목은 필수 파라미터이고, *가 없는 항목은 선택 파라미터입니다.
오프라인 동기화 작업 생성
위 단계에 따라 S3 데이터 소스 생성을 완료하고 연결 테스트에 성공했다면, 실제 시나리오에 맞게 S3 오프라인 읽기 작업을 구성할 수 있습니다.
S3를 데이터 소스/목적지로 사용
데이터 소스에서 S3를 선택하고 다음 관련 파라미터를 설정합니다.
| 필드 이름 | 설명 |
|---|---|
| *소스 타입 | 데이터 소스 타입으로 S3 선택 |
| *데이터 소스 이름 | 데이터 소스 관리 화면에 등록된 S3 데이터 소스이며, 드롭다운에서 선택할 수 있습니다. 해당 데이터 소스를 아직 만들지 않았다면 데이터 소스 관리 버튼을 클릭하여 S3 데이터 소스를 생성할 수 있습니다. |
| *파일 경로 | 파일 경로를 통해 S3 오브젝트 스토리지에 저장된 파일을 읽습니다
|
| *파일 타입 | orc, csv, text, parquet, json 타입 지원 |
| 고급 설정 | 빈 디렉토리 성공으로 표시: 스위치를 켜면 파일 디렉터리가 비어 있을 때 작업 실행이 성공한 것으로 간주합니다 |
파라미터 이름 앞에 *가 있는 항목은 필수 파라미터이고, *가 없는 항목은 선택 파라미터입니다.
데이터 목적지에서 S3를 선택하고 다음 관련 파라미터를 설정합니다.
| 필드 이름 | 설명 |
|---|---|
| 데이터 소스 | 데이터 목적지 타입으로 S3를 선택하고, 데이터 소스 관리 화면에 등록된 S3 데이터 소스를 드롭다운에서 선택합니다 |
| 쓰기 대상 디렉토리 | 데이터를 쓸 S3 디렉토리로, 사전 설정된 접두사 뒤에 입력하며 /로 시작할 수 없습니다
|
| 파일 유형 | orc, csv, text, parquet, json 타입을 지원합니다. csv 또는 text를 선택하면 파일 쓰기 규칙을 설정할 수 있습니다. 아래 CSV, Text 파일 쓰기 규칙을 참고하십시오 |
| 쓰기 모드 | 기본값은 디렉토리에 쓰기이며, 다음 중에서 선택할 수 있습니다.
|
CSV, Text 파일 읽기 규칙
데이터 소스로 사용할 때 csv 또는 text 파일 타입을 선택한 후 파일 읽기 규칙을 펼쳐 열 구분 기호와 헤더 건너뛰기를 설정합니다. 기본 열 구분 기호는 쉼표이고 헤더 건너뛰기의 기본값은 아니요입니다. 파일에 헤더가 있고 이를 데이터로 읽을 필요가 없으면 예를 선택합니다.
- csv: 열 구분 기호는 쉼표, 세미콜론, 세로 막대 등 유효한 단일 문자를 지원하며,
\t를 입력하여 Tab을 나타낼 수도 있습니다.\t외에는 여러 문자로 된 구분 기호를 지원하지 않으며, 큰따옴표, 캐리지 리턴, 줄바꿈도 구분 기호로 사용할 수 없습니다. 예를 들어 세로 막대로 열을 구분할 때는\|가 아니라|를 입력합니다. - text: 열 구분 기호는 정규표현식으로 해석됩니다. 예를 들어
\t는 Tab,\s+는 연속된 공백,::는 연속된 콜론 두 개를 나타냅니다. 세로 막대나 마침표로 열을 구분할 때는 정규표현식의 특수 기호로 해석되지 않도록 각각\|또는\.를 입력해야 합니다.
CSV와 Text는 구분 기호 처리 방식이 다릅니다. 파일 타입을 전환하거나 읽기 규칙을 수정한 후에는 데이터 미리보기와 필드 매핑을 다시 확인하십시오.
CSV, Text 파일 쓰기 규칙
데이터 목적지로 사용할 때 csv 또는 text 파일 타입을 선택한 후 파일 쓰기 규칙을 펼칩니다. 페이지에는 열 구분 기호와 헤더 건너뛰기 옵션이 있으며, 기본값은 각각 쉼표와 아니요입니다. 열 구분 기호 입력란에는 최대 8자까지 입력할 수 있습니다.
쓰기 설정은 읽기 설정과 독립적이므로 읽기 측의 정규표현식 규칙을 쓰기 설정에 그대로 적용해서는 안 됩니다. 커스텀 구분 기호를 사용하거나 헤더 옵션을 조정한 후에는 먼저 수동 실행으로 출력 파일을 확인하여 구분 기호와 헤더가 예상대로인지 확인한 다음 정식 동기화에 사용하십시오.
필드 매핑 설명
데이터 소스와 타겟 설정을 완료한 후에는 필드 매핑 관계를 설정해야 합니다. 시스템은 매핑 관계에 따라 소스 필드의 데이터를 타겟 필드로 자동 동기화합니다. 필드 매핑 관계는 다음 세 가지 방식으로 설정할 수 있습니다.
- 방법 1: 직접 선택. 소스 테이블 필드를 선택한 후 타겟 테이블의 타겟 필드를 선택합니다
- 방법 2: 동일 이름으로 매핑. 시스템이 소스 테이블과 타겟 테이블에서 이름이 같은 필드 사이에 매핑 관계를 자동으로 설정합니다
- 방법 3: 동일 행으로 매핑. 시스템이 같은 행에 있는 필드 사이에 매핑 관계를 자동으로 설정합니다
하나의 타겟 필드는 하나의 소스 필드에만 대응할 수 있다는 점에 유의하십시오.
필드 타입 변환 방식
데이터를 동기화할 때 시스템은 CAST() 함수로 소스 테이블 필드의 타입을 타겟 필드의 타입으로 변환하려고 시도합니다. 변환에 실패하면 타겟 필드의 값은 NULL로 설정됩니다
데이터 타입 변환 특이 사항
- √는 해당 타입 변환을 지원함을 의미합니다
- √, null은 해당 타입 변환을 지원하며, 변환에 실패하면 NULL로 설정됨을 의미합니다
| 소스 타입/타겟 타입 | ROW | ARRAY | MAP | STRING | BOOLEAN | TINYINT | SMALLINT | INT | BIGINT | FLOAT | DOUBLE | DECIMAL | BYTES | DATE | TIMESTAMP | TIME |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ROW | √, null | |||||||||||||||
| ARRAY | √, null | |||||||||||||||
| MAP | √, null | |||||||||||||||
| STRING | √ | √, null | √, null | √, null | √, null | √, null | √, null | √, null | √, null | √, null | √, null | √, null | ||||
| BOOLEAN | √, null | √ | ||||||||||||||
| TINYINT | √, null | √ | √, null | √, null | √, null | |||||||||||
| SMALLINT | √, null | √, null | √ | √, null | √, null | |||||||||||
| INT | √, null | √, null | √, null | √ | √, null | |||||||||||
| BIGINT | √, null | √, null | √, null | √, null | √ | |||||||||||
| FLOAT | √, null | √ | √, null | √, null | ||||||||||||
| DOUBLE | √, null | √, null | √ | √, null | ||||||||||||
| DECIMAL | √, null | √, null | √, null | √ | ||||||||||||
| BYTES | √, null | √ | ||||||||||||||
| DATE | √, null | √ | √, null | |||||||||||||
| TIMESTAMP | √, null | √, null | √ | |||||||||||||
| TIME | √, null | √ |
기본 정보 설정
마지막으로 통합 계획의 기본 정보를 설정해야 합니다. 계획 이름, 담당자, 통합 동기화 속도, 비고 등이 포함됩니다.
설정을 완료한 후 저장 버튼을 클릭하면 통합 계획 생성이 완료됩니다.
참고: 계획 이름은 저장 후 수정할 수 없습니다
상세 페이지:
오프라인 동기화 계획을 작업 플로우에 연결
작업 플로우에 연결
1. 연결 시작
- 통합 계획 상세 페이지에서 오른쪽 상단의 작업 플로우에 연결 버튼을 클릭합니다
2. 작업 플로우 선택
-
드롭다운 메뉴에서 대상 작업 플로우를 선택합니다
-
새 작업 플로우를 만들려면:
- 드롭다운 메뉴 아래의 새 작업 플로우 바로가기 버튼을 클릭합니다
- 또는 개발 모듈로 이동하여 생성합니다
-
팁: 대상 작업 플로우가 표시되지 않으면 오른쪽의 ↻ 새로고침 버튼을 클릭합니다
3. 동기화 노드 생성
- 작업 플로우에서 오프라인 동기화 계획 타입의 노드를 새로 만듭니다
- 이 노드는 현재 통합 계획과 연관되며, 노드가 실행되면 해당 통합 계획의 실행이 트리거됩니다
4. 연결 완료
- 노드 생성 및 연결을 클릭하여 설정을 완료합니다
- 연결에 성공하면 작업 플로우로 이동을 클릭하여 연결 결과를 바로 확인할 수 있습니다
참고: 작업 플로우에 연결하여 생성된 작업 노드는 아직 배포되지 않은 상태입니다. 작업 플로우로 이동하여 확인한 후 해당 노드를 배포하여 라이브 상태로 전환하는 것을 권장합니다.
작업 플로우 연결 해제
오프라인 동기화 계획의 작업 플로우 연결을 해제하려면 다음과 같이 진행합니다.
- 작업 플로우가 아직 배포되지 않았다면, 해당 계획이 연결된 작업 플로우로 이동하여 개발 모드에서 해당 오프라인 동기화 계획 작업 노드를 삭제하면 됩니다.
- 작업 플로우가 이미 배포되어 라이브 상태라면, 개발 모드에서 해당 오프라인 동기화 계획 작업 노드를 삭제한 후 작업 플로우를 다시 배포해야 합니다. 이렇게 하면 운영 환경에서도 해당 노드의 연결이 함께 해제됩니다.

