Connectors and Formats
Connectors and Formats (커넥터와 포맷)
Flink 애플리케이션은 커넥터(connector)를 통해 다양한 외부 시스템에서 데이터를 읽고 쓸 수 있습니다. 또한 데이터를 Flink의 데이터 구조에 맞게 인코딩/디코딩하기 위해 여러 포맷(format)을 지원합니다.
출처: 문서
본문
Flink 애플리케이션은 커넥터를 통해 다양한 외부 시스템에서 읽고 쓸 수 있습니다. 데이터를 Flink의 데이터 구조에 맞게 인코딩하고 디코딩하기 위해 여러 포맷을 지원합니다.
사용 가능한 커넥터와 포맷의 개요는 DataStream과 Table API/SQL 양쪽에서 확인할 수 있습니다.
사용 가능한 아티팩트 (Available artifacts)
커넥터와 포맷을 사용하려면 이를 구현하는 아티팩트에 Flink가 접근할 수 있도록 해야 합니다. Flink 커뮤니티가 지원하는 각 커넥터에 대해 Maven Central에 두 개의 아티팩트를 게시합니다:
flink-connector-: 커넥터 코드만 포함하는 얇은(thin) JAR로, 제3자 의존성은 제외flink-sql-connector-: 커넥터의 모든 제3자 의존성을 포함한 사용 준비 완료된 uber JAR
포맷에도 동일하게 적용됩니다. 일부 커넥터는 제3자 의존성이 필요 없어 상응하는 flink-sql-connector- 아티팩트가 없을 수 있습니다.
uber/fat JAR는 주로 SQL client와 함께 사용하도록 지원되지만, 모든 DataStream/Table 애플리케이션에서도 사용할 수 있습니다.
아티팩트 사용하기 (Using artifacts)
커넥터/포맷 모듈을 사용하려면 다음 중 하나를 할 수 있습니다:
- 얇은 JAR와 그 전이(transitive) 의존성을 job JAR에 셰이딩(shade)
- uber JAR를 job JAR에 셰이딩
- uber JAR를 Flink 배포판의
/lib폴더에 직접 복사
의존성 셰이딩에 대해서는 Maven 및 Gradle 가이드를 참고하세요. Flink 배포판에 대한 참조는 Anatomy of the Flink distribution을 확인하세요.
uber JAR를 셰이딩할지, 얇은 JAR를 셰이딩할지, 아니면 배포판에 의존성을 그냥 포함할지는 사용자와 사용 사례에 달려 있습니다. 의존성을 셰이딩하면 job JAR에서 의존성 버전을 더 잘 제어할 수 있습니다. 얇은 JAR를 셰이딩할 때는 (바이너리 호환이 허용되는 한) 커넥터 버전을 바꾸지 않고 전이 의존성 버전을 바꿀 수 있어 더 큰 제어권을 얻습니다. 커넥터 uber JAR를 Flink 배포판의
/lib폴더에 직접 포함하면 모든 job에 대한 커넥터 버전을 한 곳에서 제어할 수 있습니다.