@Component
public class CDCCompressor
extends java.lang.Object
이 클래스는 특정 평가 ID와 데이터 청크를 받아, 압축된 데이터를 생성하고 이를 데이터베이스에 저장하는 역할을 한다. 트랜잭션 처리를 통해 데이터베이스 연산의 일관성을 보장하며, 압축 알고리즘과 데이터베이스 관련 유틸리티를 활용한다.
사용자는 compress(String, List, ChunkType) 메서드를 통해 데이터를 압축하고 저장할 수 있다. 압축된 데이터는
CompressedCycleChunkData 또는 CompressedStepChunkData로 생성되며, 청크 유형에 따라 다르게 처리된다.
| Constructor and Description |
|---|
CDCCompressor(javax.sql.DataSource dataSource)
주어진 데이터 소스를 사용하여
CDCCompressor 객체를 생성한다. |
| Modifier and Type | Method and Description |
|---|---|
static CompressedChunkData |
chunkCompression(java.util.List<java.util.Map<java.lang.String,java.lang.Object>> chunkedData,
ChunkType chunkType)
주어진 데이터를 압축하여
CompressedChunkData 객체를 생성한다. |
void |
compress(java.lang.String evaluationId,
java.util.List<java.util.Map<java.lang.String,java.lang.Object>> chunkedData,
ChunkType chunkType)
주어진 평가 ID의 원시데이터를 압축하고, 해당 압축된 데이터를 데이터베이스에 저장한다.
|
public CDCCompressor(javax.sql.DataSource dataSource)
CDCCompressor 객체를 생성한다.dataSource - 데이터베이스 연결을 위한 데이터 소스public static CompressedChunkData chunkCompression(java.util.List<java.util.Map<java.lang.String,java.lang.Object>> chunkedData, ChunkType chunkType) throws java.io.IOException
CompressedChunkData 객체를 생성한다.
입력된 데이터를 각 칼럼별로 분리한 후, 청크 타입에 맞게 데이터를 압축한다.
chunkedData - 압축할 원시 데이터 청크 목록chunkType - 청크의 유형(CYCLE 또는 STEP)java.io.IOException - 압축 중 발생할 수 있는 예외public void compress(java.lang.String evaluationId,
java.util.List<java.util.Map<java.lang.String,java.lang.Object>> chunkedData,
ChunkType chunkType)
throws java.io.IOException,
java.sql.SQLException
트랜잭션을 사용하여 메타데이터 삽입, 데이터 압축, 데이터 저장 과정을 관리하며, 중복 데이터에 대한 검사도 수행한다.
evaluationId - 평가 IDchunkedData - 압축할 원시 데이터 리스트chunkType - 청크의 유형(CYCLE 또는 STEP)java.io.IOException - 압축 중 발생할 수 있는 입출력 예외java.sql.SQLException - 데이터베이스 연산 중 발생할 수 있는 SQL 예외