반응형
[SNOWFLAKE/스노우플레이크 공부] Pro 자격증 준비에 필요한 토막 지식 정리_Caching
**Snowflake에서 "Caching"**은 데이터나 쿼리 결과를 임시로 저장해두고, 같은 요청이 있을 때 빠르게 제공하는 기능이에요. 이를 통해 반복적인 쿼리나 자주 사용하는 데이터에 접근할 때 처리 시간을 줄여 성능을 향상시킬 수 있어요. 쉽게 설명해볼게요!
1. Caching이란?
- **Caching(캐싱)**은 이전에 처리된 데이터나 쿼리 결과를 저장해 두는 것을 의미해요.
- Snowflake에서는 캐시를 사용해서 같은 데이터를 반복적으로 요청할 때 이미 저장해 둔 데이터를 다시 가져와 빠르게 제공해요.
- 캐시된 데이터를 사용하면 다시 계산하거나 처리할 필요가 없어 시간이 절약되고, 쿼리 처리 속도가 빨라져요.
2. 어떻게 Caching이 작동하나요?
- 쿼리 실행: 사용자가 처음으로 쿼리를 실행하면, Snowflake는 그 쿼리를 처리하고 결과를 캐시(임시 저장) 해 둬요.
- 반복된 요청: 만약 같은 쿼리를 다시 실행하면, Snowflake는 이전에 저장한 결과를 캐시에서 가져와 제공해요.
- 캐시 사용 예시:
- 사용자 A가 어떤 쿼리로 데이터를 요청하고 결과를 받았어요. 이때 그 결과가 캐시에 저장돼요.
- 사용자 B가 같은 쿼리를 실행하면, Snowflake는 저장된 캐시 결과를 바로 사용자 B에게 전달해줘요. 이렇게 하면 데이터를 다시 계산할 필요가 없어서 시간과 비용을 절약할 수 있죠.
3. Snowflake에서의 Caching 종류
Snowflake에서는 여러 종류의 캐시가 있어요. 각 캐시는 다른 목적과 방식으로 작동해요:
- 쿼리 결과 캐시 (Query Result Cache):
- 쿼리 결과를 저장해 두는 캐시예요.
- 쿼리 결과는 24시간 동안 유지되며, 동일한 쿼리가 다시 요청되면 저장된 결과를 즉시 반환해요.
- 예시: "어제의 매출을 보여줘" 같은 쿼리를 여러 번 실행하면, 처음 실행 후 24시간 내에 같은 쿼리를 다시 실행할 때 즉시 캐시된 결과를 반환해요.
- 이 캐시를 사용하면 쿼리 처리 비용과 시간이 줄어들어 매우 효율적이에요.
- 로컬 디스크 캐시 (Local Disk Cache):
- Virtual Warehouse가 데이터를 처리할 때, 로컬 디스크에 데이터 페이지를 캐시해요.
- 이를 통해 반복적으로 사용하는 데이터를 디스크에 저장해두고, 다시 읽어올 때 빠르게 처리할 수 있어요.
- 예를 들어, 큰 테이블에서 반복적으로 같은 데이터를 읽어야 하는 경우, 해당 데이터를 로컬 디스크에 저장해 다음 읽기 속도를 높이는 방식이에요.
- 원격 디스크 캐시 (Remote Disk Cache):
- 데이터가 로컬 캐시에 남아있지 않을 때, Snowflake는 S3와 같은 원격 스토리지에서 데이터를 불러와요.
- 원격 디스크 캐시는 주로 압축된 형식으로 저장되어 있어 공간을 절약하고, 필요할 때 빠르게 가져올 수 있도록 도와줘요.
4. Caching의 장점
- 빠른 응답 속도: 같은 쿼리를 실행할 때 캐시된 데이터를 사용하면 결과를 즉시 제공할 수 있어요. 이로 인해 쿼리 응답 시간이 비약적으로 빨라져요.
- 비용 절감: 캐시를 사용하면 반복적인 쿼리 실행에 따른 리소스 사용이 줄어들기 때문에, Virtual Warehouse 사용 비용을 절감할 수 있어요.
- 효율적인 리소스 사용: 캐시를 통해 컴퓨팅 리소스를 절약하고, 다른 작업에 사용할 수 있는 여유를 만들어줘요.
5. Caching을 비유로 설명해 볼게요
- 비유: 캐싱은 냉장고와 비슷해요!
- 만약 매일 식사 준비를 위해 장보러 가야 한다면, 시간이 많이 걸릴 거예요.
- 그래서 냉장고에 음식을 미리 저장해두면, 필요할 때마다 바로 꺼내 먹을 수 있어서 시간을 아낄 수 있죠.
- 마찬가지로, Snowflake도 데이터 쿼리 결과를 캐시에 저장해두고, 반복 요청이 있을 때 빠르게 제공해서 시간을 절약해요.
6. 캐싱 사용 시 주의사항
- 변경된 데이터: 데이터가 업데이트되면, 캐시된 결과는 더 이상 유효하지 않게 돼요. 이 경우 Snowflake는 캐시를 무시하고 새로운 결과를 계산해야 해요.
- 쿼리의 정확성: 캐시는 완전히 동일한 쿼리에만 적용돼요. 쿼리의 공백, 대소문자, 조건 순서가 조금이라도 달라지면 새로운 쿼리로 인식해요.
- 캐시의 유효 기간: 쿼리 결과 캐시는 24시간 동안 유지되지만, 그 이후에는 재계산이 필요해요.
7. 정리하자면:
- Caching은 데이터나 쿼리 결과를 임시로 저장하여, 반복적인 요청 시 빠르게 제공하는 방식이에요.
- 이를 통해 쿼리 처리 속도를 높이고, 비용을 절감할 수 있어요.
- Snowflake에서는 쿼리 결과 캐시를 비롯한 다양한 캐시를 활용해 데이터 처리 성능을 최적화해요.
Caching 덕분에 Snowflake는 반복 작업을 더 효율적이고 빠르게 처리할 수 있어, 사용자 경험을 더욱 좋게 만들어줘요!
반응형