Snowflake

[Snowflake] SnowPro Core 시험 Cheat Sheet 4(데이터 로드 및 언로드)

JustJunsu 2024. 10. 29. 21:13
728x90

4. 데이터 로드 및 언로드

Snowflake의 데이터 로드 및 언로드 작업은 데이터를 효율적으로 Snowflake에 저장하거나 외부로 전송하는 데 필수적인 과정입니다. 여기에는 다양한 기능과 명령어를 통해 데이터 로드 및 언로드 성능을 최적화하는 방법이 포함됩니다.

4.1 데이터 로드 시 고려해야 할 개념과 수행해야 할 모범 사례 정의하기

Snowflake에 데이터를 로드할 때는 스테이지, 파일 크기와 형식, 폴더 구조, 로드 방식 및 Snowpipe 설정 등을 고려하여 데이터를 효율적으로 관리해야 합니다.

1) 스테이지 및 스테이지 유형

Snowflake에서 데이터를 로드하기 위한 임시 스토리지인 스테이지에는 내부 스테이지와 외부 스테이지가 있으며, 각 유형에 따라 로드 방식이 달라집니다.

 

내부 스테이지 생성 코드 예제

CREATE STAGE my_internal_stage;

 

외부 스테이지 생성 코드 예제

CREATE STAGE my_external_stage 
    URL='s3://my-bucket/data/' 
    STORAGE_INTEGRATION = my_s3_integration;
  • 모범 사례: 내부 스테이지를 사용할 경우 Snowflake 보안을 통해 데이터 접근을 제어하고, 외부 스테이지를 사용할 경우 데이터 접근 권한을 적절히 설정하여 보안을 강화합니다.

2) 파일 크기와 파일 형식

파일 크기와 형식은 로드 성능과 효율성에 중요한 영향을 미칩니다. Snowflake는 CSV, JSON, Parquet 등 다양한 파일 형식을 지원하며, 데이터 로드 전에 파일 형식을 지정해야 합니다.

 

파일 형식 생성 코드 예제

CREATE FILE FORMAT my_csv_format
    TYPE = 'CSV' 
    FIELD_OPTIONALLY_ENCLOSED_BY = '"'
    NULL_IF = ('NULL', 'null', '');

3) 폴더 구조

폴더 구조를 활용하면 데이터의 논리적 구성과 관리가 쉬워집니다. 데이터 로드 시 특정 폴더만 로드할 수 있으며, 폴더 구조를 일관되게 설정하는 것이 중요합니다.

4) 임시 로드 vs. 대량 로드

임시 로드 (Ad-hoc Load)

  • 설명: 임시 로드는 Snowflake에 데이터를 임시로 로드하거나, 소규모 또는 비정기적 데이터 로드가 필요할 때 사용됩니다. PUT 명령어를 사용해 로컬 파일을 Snowflake의 스테이지로 업로드한 다음, COPY INTO 명령어로 해당 데이터를 Snowflake 테이블로 전송하는 방식입니다.
  • 적용 사례:
    • 소규모 데이터 로드: 수백 MB 이내의 데이터와 같은 소규모 파일을 Snowflake로 로드할 때 유용합니다.
    • 테스트 데이터 로드: 데이터 전송 프로세스를 테스트하거나, 일회성 데이터를 로드할 때 사용됩니다.
    • 수동 데이터 관리: 주기적인 데이터 로드가 필요 없거나, 수동으로 데이터를 확인하며 로드할 경우 적합합니다.
  • 장점:
    • 간편한 실행: 소규모 데이터에 대해 빠르게 수동 작업을 수행할 수 있습니다.
    • 유연성: 필요한 경우만 데이터 파일을 업로드하고 로드할 수 있어 유연한 운영이 가능합니다.

사용 예제:

  • 단계 1: PUT 명령어로 파일을 스테이지에 업로드
  • PUT file://path/to/local/file.csv @my_internal_stage;
  • 단계 2: COPY INTO 명령어로 파일을 테이블에 로드
  • COPY INTO my_table FROM @my_internal_stage/file.csv FILE_FORMAT = (FORMAT_NAME = 'my_csv_format');

대량 로드 (Bulk Load)

  • 설명: 대량 로드는 대규모 데이터를 효율적으로 Snowflake에 로드하기 위한 방법입니다. Snowflake는 대량 로드를 위해 COPY INTO 명령어를 활용해 파일을 병렬로 로드하여, 데이터 양이 많은 경우에도 최적의 성능을 발휘할 수 있도록 합니다. 데이터가 여러 파일로 분할된 경우 Snowflake는 이들 파일을 병렬로 처리하여 로드 성능을 향상시킵니다.
  • 적용 사례:
    • 대규모 데이터 로드: 수백 MB~GB 이상의 대량 데이터를 Snowflake로 전송할 때 사용됩니다.
    • 주기적인 데이터 로드: 매일, 매주, 매달 주기적으로 대량 데이터를 로드하는 배치 작업에 적합합니다.
    • 병렬 처리 최적화: 파일을 여러 개로 분할하여 동시에 로드하면 데이터 전송 속도가 향상됩니다.
  • 장점:
    • 병렬 처리 성능: 데이터 파일을 병렬로 처리하여 대량 데이터를 빠르게 Snowflake에 로드할 수 있습니다.
    • 성능 최적화: 데이터 파일 크기와 스테이지 구성에 맞게 로드를 최적화하여 리소스를 효율적으로 사용할 수 있습니다.
  • 모범 사례:
    • 병렬 로드 최적화: 대량 데이터를 로드할 때는, 100~250MB 사이의 파일 크기로 데이터를 분할하여 병렬 처리를 최대한 활용하는 것이 좋습니다.
    • 스테이지 구성: 외부 스테이지를 사용하는 경우에는 데이터 파일을 적절히 관리하고, 각 파일의 경로를 지정하여 로드합니다.

사용 예제:

  • COPY INTO 명령어를 사용해 대량 데이터 병렬 로드
  • COPY INTO my_table FROM @my_external_stage/data/ FILE_FORMAT = (FORMAT_NAME = 'my_csv_format') PATTERN = '.*.csv'; -- 외부 스테이지 내 모든 CSV 파일 로드

요약:
임시 로드는 소규모 데이터나 일회성 작업에 유용한 반면, 대량 로드는 대규모 데이터를 처리하기 위해 병렬 처리 기능을 활용해 성능을 극대화합니다. Snowflake의 COPY INTO 명령어는 로드 방식에 따라 유연하게 사용할 수 있어, 파일 크기와 로드 빈도에 맞춰 최적의 로드 방식을 선택하는 것이 중요합니다.

5) Snowpipe

  • 설명: Snowpipe는 스테이지에 업로드된 파일을 실시간으로 Snowflake 테이블로 로드하는 서비스입니다.

 

Snowpipe 파이프 생성 코드 예제

CREATE PIPE my_pipe 
    AS 
    COPY INTO my_table 
    FROM @my_stage 
    FILE_FORMAT = (FORMAT_NAME = my_csv_format);

 

 

파일 업로드 및 Snowpipe 자동 로드 트리거

# 예시: AWS S3에 파일 업로드 
aws s3 cp data.csv s3://my-bucket/data/

4.2 데이터 로드에 사용되는 여러 명령과 사용 상황

Snowflake에서 데이터를 로드할 때 다양한 명령어를 통해 스테이지와 파일 형식을 정의하고 데이터를 효과적으로 테이블에 적재할 수 있습니다. 아래에 각 명령어의 개념과 사용 상황을 자세히 설명합니다.

1) CREATE STAGE

  • 설명: CREATE STAGE는 데이터를 로드하거나 저장하기 위한 임시 저장 공간(스테이지)을 만드는 명령어입니다. Snowflake에서 스테이지는 데이터 파일을 임시로 보관하며, 데이터 파일을 Snowflake 테이블로 로드할 수 있도록 준비하는 중간 저장소 역할을 합니다.

 

  • 유형:
    • 내부 스테이지 (Internal Stage): Snowflake 내부에 저장되는 스테이지로, 보안이 필요하거나 데이터 파일을 Snowflake 자체에 저장할 경우에 사용합니다.
    • 외부 스테이지 (External Stage): AWS S3, Google Cloud Storage, Microsoft Azure Blob Storage와 같은 외부 스토리지와 연동하여 사용할 수 있습니다.
  • 사용 상황:

내부 스테이지 생성 예제:

CREATE STAGE my_internal_stage;

 

외부 스테이지 생성 예제:

CREATE STAGE my_external_stage 
URL='s3://my-bucket/data/'
STORAGE_INTEGRATION = my_s3_integration;

 

2) CREATE FILE FORMAT

  • 설명: CREATE FILE FORMAT은 데이터를 Snowflake 테이블로 로드할 때 파일의 형식을 지정하기 위해 사용됩니다. Snowflake는 CSV, JSON, Parquet, Avro와 같은 다양한 파일 형식을 지원하며, 파일 형식에 따라 데이터가 다르게 해석됩니다.
  • 사용 상황: 다양한 파일 형식으로 저장된 데이터를 Snowflake에 로드할 때, 파일의 구체적인 구조를 정의하여 데이터가 올바르게 로드되도록 설정합니다.

CSV 파일 형식 정의 예제:

CREATE FILE FORMAT 
my_csv_format TYPE = 'CSV' 
FIELD_OPTIONALLY_ENCLOSED_BY = '"' 
NULL_IF = ('NULL', 'null', '');

 

JSON 파일 형식 정의:

CREATE FILE FORMAT my_json_format TYPE = 'JSON';

3) CREATE PIPE

  • 설명: CREATE PIPE 명령어는 Snowpipe를 설정하여 실시간으로 데이터를 자동으로 Snowflake 테이블에 로드할 수 있는 파이프라인을 생성합니다. Snowpipe는 스테이지에 데이터가 업로드되는 즉시 이를 Snowflake로 로드할 수 있도록 설정할 수 있습니다.
  • 사용 상황: 실시간 데이터 로드가 필요한 경우, CREATE PIPE 명령을 통해 Snowpipe를 설정하여 스테이지에 파일이 추가될 때마다 자동으로 데이터를 Snowflake 테이블에 로드할 수 있습니다.

예제:

CREATE PIPE my_pipe 
AS 
COPY INTO my_table 
FROM @my_stage 
FILE_FORMAT = (FORMAT_NAME = my_csv_format);

4) CREATE EXTERNAL TABLE

  • 설명: CREATE EXTERNAL TABLE 명령어는 외부 클라우드 스토리지에 저장된 데이터를 Snowflake로 로드하지 않고도 직접 SQL 쿼리를 통해 조회할 수 있도록 설정하는 기능입니다. 외부 테이블을 사용하면 Snowflake에 데이터를 실제로 로드하지 않고도 외부 데이터를 분석할 수 있습니다.
  • 사용 상황: 외부 클라우드 스토리지에 저장된 대용량 데이터를 직접 쿼리하여 Snowflake에서 분석할 때 사용합니다.

 

예제:

CREATE EXTERNAL TABLE my_external_table (
  id INT,
  name STRING,
  timestamp TIMESTAMP
)
LOCATION = @my_external_stage/data/
FILE_FORMAT = (FORMAT_NAME = my_csv_format);

5) COPY INTO

설명: COPY INTO는 Snowflake에서 데이터를 로드할 때 사용하는 주요 명령어로, 스테이지에 저장된 데이터를 Snowflake 테이블로 로드합니다. 여러 개의 파일을 병렬로 처리할 수 있어 대량 로드 작업에 최적화되어 있습니다.

 

사용 상황: 대량 데이터를 Snowflake 테이블로 로드하거나 데이터 형식을 지정하여 다양한 형태의 파일을 로드할 때 사용합니다.

 

예제:

COPY INTO my_table 
FROM @my_stage 
FILE_FORMAT = (FORMAT_NAME = my_csv_format);

 

6) INSERT 및 INSERT OVERWRITE

설명: INSERT 명령어는 기존 Snowflake 테이블에 데이터를 추가하는 명령어입니다. INSERT는 새로운 데이터를 추가할 때 사용하며, INSERT OVERWRITE는 기존 데이터를 덮어쓰는 방식으로 데이터를 갱신할 때 사용됩니다.

사용 상황:

  • INSERT: 소규모 데이터를 Snowflake 테이블에 추가할 때 사용합니다.
  • INSERT OVERWRITE: 기존 데이터를 완전히 갱신해야 할 경우 사용됩니다.

INSERT 데이터 추가 예제:

INSERT INTO my_table (id, name) VALUES (1, 'Alice');

 

INSERT OVERWRITE 데이터 갱신 예제:

INSERT OVERWRITE INTO my_table (id, name) VALUES (1, 'Bob');

7) PUT

설명: PUT 명령어는 로컬 파일을 Snowflake의 스테이지로 업로드하는 데 사용됩니다. 로컬 파일을 스테이지에 올린 후, COPY INTO 명령어를 통해 Snowflake 테이블에 로드할 수 있습니다.

사용 상황: Snowflake가 아닌 로컬 시스템에서 파일을 Snowflake 스테이지로 업로드할 때 사용합니다.

 

예제:

PUT file://path/to/local/file.csv @my_stage;

8) VALIDATE

 

설명: VALIDATE 명령어는 데이터를 로드하기 전에 데이터 파일이 유효한지 검사하는 명령어로, 데이터 형식이나 구조와 같은 오류를 사전에 확인하여 로드 실패를 방지할 수 있습니다.

사용 상황: 대량 데이터를 로드하기 전에 데이터 파일을 검증하여 형식 오류나 무결성 문제를 사전에 파악할 때 사용합니다.

 

예제:

 

COPY INTO my_table
FROM @my_stage
FILE_FORMAT = (FORMAT_NAME = my_csv_format)
VALIDATE;

4.3 데이터 언로드 시 고려해야 할 개념과 수행해야 할 모범 사례 정의하기

Snowflake에서 데이터를 언로드할 때는 전송 효율성과 데이터 무결성을 보장하기 위해 파일 크기, 파일 형식, 빈 문자열과 NULL 값 처리, 파일 압축 방법 등의 다양한 요소를 고려해야 합니다. 이를 통해 데이터 전송 시 리소스를 최적화하고 데이터를 안정적으로 보관할 수 있습니다.

1) 파일 크기와 파일 형식 (File Size and File Format)

  • 파일 크기 (File Size): Snowflake에서 데이터를 외부 스테이지로 내보낼 때는 파일 크기를 적절히 조정하는 것이 중요합니다. 너무 작은 파일은 전송 횟수를 증가시켜 성능을 저하시킬 수 있고, 너무 큰 파일은 전송 및 처리에 부담이 될 수 있습니다.
    • 모범 사례: 일반적으로 100MB에서 250MB 사이로 파일 크기를 조정하여, 데이터 전송 속도와 처리 성능을 최적화하는 것이 좋습니다.
  • 파일 형식 (File Format): Snowflake는 다양한 파일 형식을 지원하며, 파일 형식에 따라 전송 속도와 데이터 해석이 달라질 수 있습니다.
    • CSV: 행과 열이 구분된 구조적 데이터에 적합합니다. CSV 파일은 일반적으로 텍스트로 저장되기 때문에, 데이터를 직관적으로 이해할 수 있으나 압축률은 상대적으로 낮습니다.
    • JSON: 반정형 데이터나 계층적 데이터 구조를 보관할 때 유용합니다. JSON 데이터는 Snowflake의 VARIANT 데이터 타입과 호환되어 복잡한 데이터 구조를 표현할 수 있습니다.
    • Parquet, Avro: 열 기반 파일 형식으로, 분석에 적합한 고압축 파일 포맷입니다. 데이터 분석과 빠른 쿼리 처리에 용이하며, 파일 크기를 줄이는 데 유리합니다.

2) 압축 방법의 개요 (Compression Methods Overview)

  • 설명: 데이터를 압축하여 파일 크기를 줄이면 전송 속도와 스토리지 비용을 절감할 수 있습니다. Snowflake는 다양한 압축 형식을 지원하여 데이터 전송 및 저장 효율을 극대화합니다.
  • 주요 압축 방식:
    • GZIP: CSV 및 텍스트 파일에서 주로 사용되는 일반적인 압축 방식입니다. 압축률이 높고, 다양한 시스템에서 쉽게 해제할 수 있습니다.
    • BZIP2: GZIP보다 더 높은 압축률을 제공하며, 특히 데이터 분석 시에 유용합니다.
    • DEFLATE: GZIP과 유사한 알고리즘을 사용하여 데이터 압축을 수행하며, 일부 JSON 및 CSV 파일에 주로 사용됩니다.
    • 모범 사례: 파일 형식에 맞는 압축 방식을 선택하여 파일 크기를 줄이되, 압축과 해제를 위해 Snowflake 외부 시스템에서 사용 가능한 포맷으로 설정하는 것이 좋습니다.

3) 빈 문자열 및 NULL 값 (Empty Strings and NULL Values)

  • 설명: 언로드 시 데이터에 빈 문자열과 NULL 값이 포함될 수 있으며, 이들이 적절하게 처리되지 않으면 데이터 해석에 오류가 발생할 수 있습니다.
  • NULL 값 처리 모범 사례:
    • 빈 문자열: 비어 있는 값을 빈 문자열로 처리하면, 데이터베이스에서 텍스트 값으로 인식하게 됩니다. 이를 통해 데이터 해석 시 직관성을 유지할 수 있습니다.
    • NULL 값: NULL은 값이 없는 경우로, 빈 문자열과는 구분되어야 합니다. NULL 값을 처리할 때는 NULL AS 옵션을 사용하여 명확하게 정의할 수 있습니다.

예제:

COPY INTO @my_stage/my_data.csv
FROM my_table
FILE_FORMAT = (FORMAT_NAME = 'my_csv_format' NULL_IF = ('NULL', 'null', ''));

 

4) 단일 파일로 언로드 (Unloading to a Single File)

  • 설명: 데이터 언로드 시 여러 파일로 분할하는 대신 단일 파일로 내보내면 관리와 전송이 간편해집니다. 하지만, 대용량 데이터의 경우 단일 파일로 내보낼 때 파일 크기가 커질 수 있습니다.
  • 모범 사례:
    • 소규모 데이터: 데이터 크기가 작을 경우 단일 파일로 내보내 관리 편의성을 높입니다.
    • 대용량 데이터: 데이터가 수백 MB를 초과하는 경우 Snowflake는 데이터 전송을 여러 파일로 자동 분할합니다. 이때, MAX_FILE_SIZE 파라미터를 사용해 파일 크기를 제한할 수 있습니다.

단일 파일 지정 예제:

COPY INTO @my_stage/single_file.csv 
FROM my_table 
FILE_FORMAT = (FORMAT_NAME = 'my_csv_format') 
SINGLE = TRUE;

5) 관계형 테이블 언로드 (Relational Table Unloading)

  • 설명: Snowflake 테이블 내 관계형 데이터를 언로드할 때는 테이블 간의 관계를 유지하며 데이터를 내보내야 합니다. 관계형 데이터는 일반적으로 여러 테이블에 걸쳐 분할 저장되기 때문에, 이를 그대로 내보내기 위해 조인 쿼리를 통해 하나의 파일로 결합하여 내보내거나 별도의 파일로 저장해 복원성을 유지해야 합니다.
  • 모범 사례:
    • 조인된 테이블 언로드: 여러 테이블 간 관계를 유지한 채로 데이터를 내보내려면 조인 쿼리를 사용하여 하나의 결과로 합쳐서 언로드합니다.
    • 개별 테이블 언로드: 관계를 유지하려면 개별 테이블을 별도로 내보내며, 각 테이블 간의 키 값을 통해 데이터 복원을 할 수 있습니다.

관계형 데이터 언로드 예제:

COPY INTO @my_stage/joined_data.csv
FROM (
  SELECT a.id, a.name, b.order_date, b.amount
  FROM customer AS a
  JOIN orders AS b ON a.id = b.customer_id
)
FILE_FORMAT = (FORMAT_NAME = 'my_csv_format');

4.4 데이터 언로드에 사용되는 여러 명령과 사용 상황

Snowflake에서 데이터를 외부 시스템으로 내보낼 때는 다양한 명령어를 사용하여 데이터를 효율적으로 관리하고 전송할 수 있습니다. 각 명령어는 데이터를 스테이지로 내보내거나, 외부 시스템으로 이동하고, 파일 형식 및 스테이지를 정의하는 데 사용됩니다.

1) GET

  • 설명: GET 명령어는 Snowflake의 내부 스테이지에 저장된 데이터를 로컬 시스템이나 외부 클라우드 스토리지로 다운로드하는 데 사용됩니다. Snowflake 스테이지에 업로드된 데이터를 로컬 디렉터리로 복사하여 저장할 수 있습니다.
  • 사용 상황:
    • Snowflake 스테이지에 저장된 파일을 로컬 시스템으로 이동할 때 사용됩니다.
    • 외부 시스템으로 Snowflake 데이터를 백업하거나 로컬 분석을 위해 파일을 다운로드할 때 유용합니다.

예제:

GET @my_stage/file.csv file://local_directory/;

 

 

위 예제에서 file.csv 파일이 @my_stage에 저장된 후, 로컬 디렉터리(local_directory)로 다운로드됩니다.

 

2) LIST

  • 설명: LIST 명령어는 Snowflake 스테이지에 저장된 파일 목록을 확인하고 관리할 수 있도록 합니다. 특정 스테이지 내 파일 경로와 속성을 조회할 수 있으며, 데이터의 구조와 파일 이름, 위치 등을 파악할 수 있습니다.
  • 사용 상황:
    • 데이터 로드 및 언로드 작업을 수행하기 전에 스테이지에 저장된 파일을 확인하고 파일의 이름과 위치를 검토할 때 유용합니다.
    • 여러 파일이 있는 경우 특정 패턴을 지정하여 조회할 수 있습니다.

예제:

LIST @my_stage;

 

이 명령어를 통해 @my_stage에 저장된 모든 파일 목록을 확인할 수 있습니다.

 

3) COPY INTO

  • 설명: COPY INTO 명령어는 Snowflake 테이블의 데이터를 스테이지로 내보내기 위해 사용되는 가장 중요한 명령어입니다. COPY INTO는 다양한 파일 형식(CSV, JSON, Parquet 등)을 지원하며, 데이터 파일 형식과 압축 형식을 지정하여 데이터를 외부 스테이지로 이동할 수 있습니다.
  • 사용 상황:
    • Snowflake 테이블의 데이터를 외부 스테이지로 내보내야 할 때 사용됩니다.
    • 여러 형식의 파일로 데이터를 내보낼 때, 파일 형식을 지정하여 데이터를 효율적으로 관리하고, 전송 효율성을 극대화할 수 있습니다.

예제:

COPY INTO @my_stage/data 
FROM my_table 
FILE_FORMAT = (FORMAT_NAME = 'my_csv_format') 
OVERWRITE = TRUE;

 

위 예제는 my_table의 데이터를 @my_stage의 data 폴더에 my_csv_format 형식으로 내보내며, 기존 파일이 있으면 덮어씁니다.

 

4) CREATE STAGE

  • 설명: CREATE STAGE는 데이터를 로드하거나 내보내기 위해 Snowflake 스테이지를 생성하는 명령어입니다. Snowflake 스테이지는 임시 저장 공간으로, 데이터를 Snowflake 테이블로 로드하거나 Snowflake에서 외부로 데이터를 내보낼 때 중간 단계로 사용됩니다. 스테이지는 Snowflake 내부 스토리지 또는 외부 스토리지(AWS S3, Azure Blob Storage 등)와 연동할 수 있습니다.
  • 사용 상황:
    • 데이터를 저장할 스테이지를 생성하여, Snowflake와 외부 시스템 간에 데이터 파일을 이동할 때 사용합니다.
    • 외부 스토리지와 연동하여 데이터를 주기적으로 로드하거나 내보내야 할 경우 유용합니다.

내부 스테이지 생성 예제:

CREATE STAGE my_internal_stage;

 

외부 스테이지 생성 예제:

CREATE STAGE my_external_stage 
URL='s3://my-bucket/data/' 
STORAGE_INTEGRATION = my_s3_integration;

 

위 명령어는 AWS S3의 my-bucket 버킷을 Snowflake 외부 스테이지로 설정하여, 데이터를 S3와 연동하여 로드하거나 내보낼 수 있도록 설정합니다.

 

5) CREATE FILE FORMAT

  • 설명: CREATE FILE FORMAT 명령어는 데이터를 로드하거나 언로드할 때 사용할 파일 형식을 정의합니다. Snowflake는 다양한 파일 형식(CSV, JSON, Parquet, Avro)을 지원하며, 데이터의 파일 구조에 맞는 형식을 지정하여 데이터가 올바르게 로드되고 내보내질 수 있도록 합니다.
  • 사용 상황:
    • 다양한 파일 형식과 압축 형식을 지원하여 데이터를 Snowflake로 로드하거나 Snowflake에서 내보낼 때 파일 형식을 지정합니다.
    • 형식에 따른 데이터를 관리하고, 전송 성능을 최적화할 수 있도록 데이터 형식을 맞춰 저장할 때 유용합니다.

예제:

  • CSV 파일 형식 생성 예제:
CREATE FILE FORMAT my_csv_format 
  TYPE = 'CSV' 
  FIELD_OPTIONALLY_ENCLOSED_BY = '"' 
  NULL_IF = ('NULL', 'null', '');
  • JSON 파일 형식 생성 예제
CREATE FILE FORMAT my_json_format 
  TYPE = 'JSON';

 

위 예제는 CSV 및 JSON 파일 형식을 지정하여 데이터를 Snowflake에서 내보낼 때 올바른 파일 구조로 관리할 수 있도록 설정합니다.

Reference

https://docs.snowflake.com/ko/guides

 

가이드 - Snowflake 설명서

협업 다른 Snowflake 사용자와 데이터와 애플리케이션을 공유합니다. Snowflake Marketplace에서 데이터 제품 목록을 검색 및 게시하거나, 데이터 제품을 비공개로 공유하거나, 직접 공유를 사용하여 동

docs.snowflake.com

 

728x90