# 최적의 검색 성능을 위한 Snowflake 구성

## 개요

Panther는 최적의 검색 성능을 제공하도록 Snowflake를 구성하는 방법을 결정했습니다. 이러한 구성 설정에는 [웨어하우스 크기](#warehouse-size), [쿼리 가속](#query-acceleration)및 [검색 최적화](#search-optimization). 이러한 지침은 구성 결정을 내릴 때 사용되며 [SaaS](https://docs.panther.com/ko/system-configuration/panther-deployment-types/saas) Snowflake 인스턴스에 대한 참조로 활용될 수 있습니다 [Cloud Connected](https://docs.panther.com/ko/system-configuration/panther-deployment-types/cloud-connected) Snowflake 인스턴스.

일부 Panther 기능은 Enterprise Edition 이상인 Snowflake 인스턴스에서만 사용할 수 있습니다.

## Snowflake Enterprise 이상을 요구하는 Panther 기능

다음 Panther 기능을 사용하려면 다음 버전 이상의 [Enterprise Edition of Snowflake](https://docs.snowflake.com/en/user-guide/intro-editions) 을(를) 사용해야 합니다:

* [쿼리 가속](#query-acceleration)
* [검색 최적화](#search-optimization)
* [로그 유형별 RBAC](https://docs.panther.com/ko/system-configuration/rbac#prerequisites-for-customer-configured-snowflake-accounts)
* [Snowflake 감사 로그 통합의 ACCESS\_HISTORY 뷰](https://docs.panther.com/ko/data-onboarding/supported-logs/snowflake)

## 웨어하우스 크기

[웨어하우스 크기](https://docs.snowflake.com/en/user-guide/warehouses-overview) 는 Snowflake에서 작업(예: Snowflake 테이블 검색)을 수행할 때 사용되는 컴퓨트 리소스의 양을 결정합니다.

### **검색 성능 및 비용 기대치**

일반적으로 웨어하우스가 클수록 쿼리 실행이 더 빠릅니다. 웨어하우스 크기 증가로 쿼리 속도가 전반적으로 향상되지만 컴퓨트 비용도 전반적으로 증가합니다. 예를 들어, `SMALL` 웨어하우스는 일반적으로 `X-SMALL` 웨어하우스보다 쿼리를 두 배 빠르게 실행하지만 실행 비용도 두 배 더 듭니다.

아래는 Panther의 수집(인제스트) 볼륨을 기준으로 한 높은 수준의 웨어하우스 크기 권장사항입니다. 이 수집 볼륨/웨어하우스 크기 조합은 모두 유사한 검색 성능을 제공합니다.

{% hint style="info" %}
아래 지침은 `PANTHER_WH`에 대한 것이며, 이는 Panther가 임시(애드혹) 검색을 실행하는 웨어하우스입니다. [스케줄된 검색](https://docs.panther.com/ko/search/scheduled-searches) 별도의 비용 고려를 위해 전용 `PANTHER_SCHEDULED_WH` 웨어하우스에서 실행될 수 있으며 해당 웨어하우스는 별도로 구성할 수 있습니다.
{% endhint %}

<table><thead><tr><th width="352.140625">월간 인제스트 볼륨(TB, 비압축)</th><th>권장 PANTHER_WH 웨어하우스 크기</th></tr></thead><tbody><tr><td>&#x3C; 8</td><td>X-SMALL</td></tr><tr><td>8-15</td><td>SMALL</td></tr><tr><td>16-31</td><td>MEDIUM</td></tr><tr><td>32-63</td><td>LARGE</td></tr><tr><td>64-127</td><td>X-LARGE</td></tr><tr><td>128-255</td><td>2X-LARGE</td></tr><tr><td>256-512</td><td>3X-LARGE</td></tr></tbody></table>

웨어하우스 크기에 대해 자세히 알아보려면 [Snowflake의 Warehouses 개요 문서](https://docs.snowflake.com/en/user-guide/warehouses-overview).

## 쿼리 가속

{% hint style="warning" %}
쿼리 가속은 [Snowflake의 Enterprise Edition](https://docs.snowflake.com/en/user-guide/intro-editions#enterprise-edition).
{% endhint %}

[쿼리 가속](https://docs.snowflake.com/en/user-guide/query-acceleration-service) 는 유휴 Snowflake 웨어하우스를 사용하여 느리게 실행되는 쿼리를 가속화하는 Snowflake 서비스입니다.

### 스케일 팩터

쿼리 가속은 스케일 팩터로 구성되며, 이는 쿼리 가속을 위해 빌릴 수 있는 컴퓨트 리소스의 상한을 설정하는 비용 제어 메커니즘입니다. Panther는 [Panther가 관리하는 Snowflake 인스턴스](https://docs.panther.com/ko/system-configuration/panther-deployment-types/legacy-configurations/snowflake-setup#panther-managed-snowflake).

예를 들어, `SMALL` 스케일 팩터가 `10` 인 웨어하우스는 `10` 더 `SMALL` 웨어하우스가 특정 쿼리에 할당될 수 있음을 의미합니다.

스케일 팩터에 대해 자세히 알아보려면 [Snowflake의 스케일 팩터 조정 문서](https://docs.snowflake.com/en/user-guide/query-acceleration-service#adjusting-the-scale-factor).

### **검색 성능 및 비용 기대치**

* 쿼리 가속은 실행 중인 쿼리가 “느리다”고 판단될 때만 활성화됩니다. 일반적으로 1분 이상 실행되는 쿼리가 가속 대상 후보입니다.
* 가속을 사용해 쿼리를 실행하는 비용은 추가 웨어하우스의 비용이 줄어든 컴퓨트 시간으로 상쇄되기 때문에 가속 없이 실행하는 경우와 대체로 비슷합니다. 다만 이론적 최대 비용은 [스케일 팩터](#setting-the-scale-factor)에 의해 결정됩니다 — 따라서 스케일 팩터가 `10` *인 웨어하우스는* 최악의 경우 기본 웨어하우스 비용보다 열 배 더 비용이 들 수 있습니다.

쿼리 가속에 대해 자세히 알아보려면 [Snowflake의 Query Acceleration Service 사용 문서](https://docs.snowflake.com/en/user-guide/query-acceleration-service).

## 검색 최적화

{% hint style="warning" %}
검색 최적화는 [Snowflake의 Enterprise Edition](https://docs.snowflake.com/en/user-guide/intro-editions#enterprise-edition).

이 기능은 Panther Enterprise 고객에게만 제공됩니다.
{% endhint %}

[검색 최적화](https://docs.snowflake.com/en/user-guide/search-optimization-service) 는 인제스트된 데이터를 인덱싱하여 ‘건초 더미에서 바늘 찾기’(즉 백만분의 일 수준의 이벤트) 검색 시 속도를 대폭 향상시키는 Snowflake 서비스입니다.

### **검색 성능 및 비용 기대치**

* 검색 최적화를 사용하면 쿼리 실행 속도가 10-100배 빨라질 수 있습니다.
* 값이 더 고유할수록 검색 최적화의 영향이 커집니다.
  * 예를 들어, 당신이 `isHuman = True` 와 `50%` 인 이벤트의 `비율이`True `.0001%` 라면 검색 최적화는 전혀 성능을 향상시키지 못할 것입니다; 그러나 만약 이벤트의 `비율이`비율만
* 검색 최적화 비용은 다음에 따라 달라질 수 있습니다:
  * 검색 최적화 초기화 시와 이후 데이터가 인제스트될 때 모두 인덱싱되는 테이블과 필드의 수와 크기에 의해 비용이 영향을 받습니다. 테이블과 필드가 많고 클수록 비용이 더 많이 듭니다.
    * 검색 최적화를 초기화할 때는 기존의 모든 데이터를 인덱싱해야 하므로 인덱싱되는 과거 데이터 양에 비례하는 선행 비용이 발생합니다.
    * 초기화 이후에는 검색 최적화 인덱스를 생성하는 데 필요한 컴퓨트에 따라 데이터 인제스트 시 비용이 계산됩니다.
  * 색인이 검색 가속에 사용될 때에는 추가 비용이 발생하지 않습니다. 이는 검색이 더 빠르게 실행되므로 비용이 더 저렴해질 수 있음을 의미합니다.

검색 최적화에 대해 자세히 알아보려면 [Snowflake의 Search Optimization Service 사용 문서](https://docs.snowflake.com/en/user-guide/search-optimization-service).
