# Snowflake

## 개요

Panther는 다음을 사용하는 것을 지원합니다 [Snowflake](https://www.snowflake.com) 데이터 레이크 백엔드로 데이터를 저장하고 검색하기 위해.

Panther를 Snowflake와 통합하면 Panther 데이터를 비즈니스 인텔리전스 도구에서 사용하여 운영에 맞춘 대시보드를 만들 수 있습니다. 또한 Panther 데이터(예: Panther 알러트)를 비즈니스 데이터와 조인하여 조직에 대한 보안 태세를 평가할 수 있습니다. 예를 들어, 알러트를 조직 부서(예: 인사)별로 또는 인프라(예: 개발, 테스트 또는 운영)별로 집계할 수 있습니다.

Snowflake 인스턴스는 [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). Panther가 관리형 Snowflake 인스턴스를 어떻게 구성하는지(또는 사용자가 구성한 인스턴스를 구성하기 위한 권장 사항)를 다음에서 확인하세요 [최적 검색 성능을 위한 Snowflake 구성](https://docs.panther.com/ko/search/backend/snowflake/configuration)참고로 [특정 Panther 기능은 Snowflake의 엔터프라이즈 에디션 이상에서만 제공됩니다](https://docs.panther.com/ko/search/backend/configuration#panther-features-requiring-snowflake-enterprise-or-higher).

Panther는 [Snowpipe를](https://docs.snowflake.com/en/user-guide/data-load-snowpipe-intro.html) 사용하여 데이터를 귀하의 Snowflake 클러스터로 복사합니다.

## Panther에서 추가 데이터 세트 사용

Panther는 `아래 과정을 반복하십시오. 한 번은` Snowflake에서 데이터를 쿼리하기 위해 Snowflake 사용자를 사용합니다. 기본적으로 이 사용자의 역할은 `panther_readonly_role` pan더 데이터베이스의 데이터에 접근할 수 있도록 최소한의 권한 집합만 부여되어 있습니다. 그러나 기존 데이터 세트를 귀하의 [panther\_monitor](https://docs.panther.com/ko/search/data-explorer) 쿼리(예: 인사 데이터, 사내 또는 공급업체 제공 허용/차단 목록)로 추가하려는 경우 다음과 같은 문을 사용하여 해당 데이터를 역할에 접근 가능하도록 만들 수 있습니다:

```sql
GRANT USAGE
  ON DATABASE my_database_name
  TO ROLE panther_readonly_role;
GRANT USAGE
  ON SCHEMA my_database_name.my_schema_name
  TO ROLE panther_readonly_role;
GRANT SELECT
  ON TABLE  my_database_name.my_schema_name.my_table_name
  TO ROLE panther_readonly_role;
```

새로 부여된 데이터베이스, 스키마 및 테이블은 *Enterprise 조직* Panther 사이드바에 표시되지만 일반 SQL을 사용하여 액세스할 수 있습니다.

## Snowflake 상태 모니터링

Panther는 다음 항목에 대해 Snowflake에서 상태 검사를 수행합니다 [파일 로딩](#file-loading-into-snowflake) 와 [스테이지 및 Snowpipe 상태](#stage-and-snowpipe-health)기본적으로 Panther는 이러한 검사를 3시간(또는 180분)마다 실행합니다.

### Snowflake로의 파일 로딩

Snowflake의 [COPY\_HISTORY() 함수](https://docs.snowflake.com/en/sql-reference/functions/copy_history)을(를) 사용하여 Panther는 Panther 소유 데이터베이스 테이블에 추가된 파일을 로딩 오류 여부를 모니터링합니다. 오류는 드물지만 발견 즉시 Panther 담당자에게 보고됩니다. 이 경우 Panther 담당자는 문제를 해결하고 데이터를 수동으로 재스테이징하여 귀하의 Snowflake 계정에 성공적으로 로드되도록 조치합니다.

### **스테이지 및 Snowpipe 상태**

Panther는 모든 [외부 스테이지](https://docs.snowflake.com/en/user-guide/data-load-s3) 와 [Snowpipe를](https://docs.snowflake.com/en/user-guide/data-load-snowpipe-intro) S3 버킷에서 Snowflake 테이블로 데이터를 로드하는 과정에서 사용되는 [의 출력이 `SYSTEM$PIPE_STATUS` function](https://docs.snowflake.com/en/sql-reference/functions/system_pipe_status#output) 다음과 같이 Snowpipe에 `executionState` 이(가) `RUNNING`이외인 것으로 나타나면, Panther는 자동으로 파이프를 수정하려고 다음 중 하나 이상의 작업을 수행합니다:

* 영향을 받은 파이프 재생성
* 기본 스테이지 재생성
* 파이프 새로고침

대부분의 경우 위 단계들로 파이프가 수정되면 데이터를 수동으로 다시 로드할 필요가 없습니다. (Panther는 이를 확인하기 위해 [파일 로드 메타데이터](https://docs.snowflake.com/en/user-guide/data-load-snowpipe-intro#load-history) Snowflake 테이블에서 사용 가능한 항목)을 확인합니다. 복사 실패와 마찬가지로 모든 스테이지 및 파이프 실패는 Panther 담당자에게 보고되며, 담당자는 수정이 필요한지 모니터링합니다.
