Sangwon
07/01/2026, 8:29 AMRocky
07/01/2026, 8:29 AMPURGE 같은 기능이 없습니다.)
이 문제를 해결하기 위해 권장되는 방법들은 다음과 같습니다:
1. 로드 상태 모니터링 후 삭제 (권장)
가장 확실한 방법은 로드 작업의 상태를 주기적으로 체크(Polling)하여 FINISHED 상태가 된 것을 확인한 후 삭제 명령을 내리는 것입니다.
* v3.1 이상: information_schema.loads 뷰를 조회하여 편리하게 상태를 확인할 수 있습니다.
sql
SELECT STATE FROM information_schema.loads WHERE LABEL = 'your_label';
* 공통: SHOW LOAD 명령을 사용합니다.
sql
SHOW LOAD WHERE LABEL = 'your_label';
상태가 `FINISHED`라면 S3에서 안전하게 파일을 지워도 됩니다.
2. 동기식 로딩 방식 사용 (INSERT INTO FILES)
만약 파일 크기가 아주 크지 않다면(보통 10GB 미만), 비동기인 Broker Load 대신 *동기(Synchronous) 방식*인 `INSERT INTO ... SELECT FROM FILES()`를 사용하는 것이 좋습니다.
* 이 방식은 쿼리가 끝날 때까지 클라이언트가 대기하므로, *쿼리가 성공적으로 반환된 직후에 바로 S3 파일을 지우는 스크립트를 실행*하면 됩니다. 별도의 상태 체크 로직이 필요 없어 구현이 단순해집니다.
3. S3 수명 주기 정책(Lifecycle Policy) 활용
명시적으로 지우는 코드를 짜기 번거롭다면, S3 버킷의 *Lifecycle Rule*을 설정하는 것이 가장 깔끔할 수 있습니다.
* 로딩용으로 사용하는 특정 경로(Prefix)에 대해 "생성 후 1일 뒤 삭제" 같은 규칙을 걸어두면, 별도로 지우지 않아도 자동으로 정리됩니다.
4. StarRocks Pipe 사용 (v3.2+)
최신 버전의 Pipe 기능을 사용하면 파일의 로딩 상태를 내부적으로 기록하고 관리합니다.
* Pipe는 어떤 파일이 로드되었는지 기억하기 때문에, 파일을 바로 지우지 않고 나중에 일괄적으로 지워도 중복 로딩을 방지할 수 있어 관리 부담이 적습니다.
요약하자면:
StarRocks가 자동으로 지워주는 옵션은 없으므로, *`INSERT INTO FILES`를 써서 동기 방식으로 처리*하거나, *`SHOW LOAD`로 상태를 확인한 후 삭제*하는 로직을 스크립트에 추가하셔야 합니다.
References
• loading/hdfs_load.md
• loading/s3.md
• loading/loading_introduction/loading_concepts.md
• sql-reference/sql-statements/loading_unloading/pipe/DROP_PIPE.md