ALTER STAGE¶
명명된 기존 내부 또는 외부 스테이지의 속성을 수정합니다.
- 참고 항목:
구문¶
ALTER STAGE [ IF EXISTS ] <name> RENAME TO <new_name>
ALTER STAGE [ IF EXISTS ] <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
ALTER STAGE <name> UNSET TAG <tag_name> [ , <tag_name> ... ]
-- Internal stage
ALTER STAGE [ IF EXISTS ] <name> SET
[ FILE_FORMAT = ( { FORMAT_NAME = '<file_format_name>' | TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML | CUSTOM } [ formatTypeOptions ] } ) ]
{ [ COMMENT = '<string_literal>' ] }
-- External stage
ALTER STAGE [ IF EXISTS ] <name> SET {
[ externalStageParams ]
[ FILE_FORMAT = ( { FORMAT_NAME = '<file_format_name>' | TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML | CUSTOM } [ formatTypeOptions ] } ) ]
[ COMMENT = '<string_literal>' ]
}
여기서
externalStageParams (for Amazon S3) ::= [ URL = '<protocol>://<bucket>[/<path>/]' ] [ { STORAGE_INTEGRATION = <integration_name> } | { CREDENTIALS = ( { { AWS_KEY_ID = '<string>' AWS_SECRET_KEY = '<string>' [ AWS_TOKEN = '<string>' ] } | AWS_ROLE = '<string>' } ) } ] [ ENCRYPTION = ( [ TYPE = 'AWS_CSE' ] [ MASTER_KEY = '<string>' ] | [ TYPE = 'AWS_SSE_S3' ] | [ TYPE = 'AWS_SSE_KMS' [ KMS_KEY_ID = '<string>' ] | [ TYPE = 'NONE' ] ) ]externalStageParams (for Google Cloud Storage) ::= [ URL = 'gcs://<bucket>[/<path>/]' ] [ STORAGE_INTEGRATION = <integration_name> } ] [ ENCRYPTION = ( [ TYPE = 'GCS_SSE_KMS' ] [ KMS_KEY_ID = '<string>' ] | [ TYPE = 'NONE' ] ) ]externalStageParams (for Microsoft Azure) ::= [ URL = 'azure://<account>.blob.core.windows.net/<container>[/<path>/]' ] [ { STORAGE_INTEGRATION = <integration_name> } | { CREDENTIALS = ( [ AZURE_SAS_TOKEN = '<string>' ] ) } ] [ ENCRYPTION = ( [ TYPE = { 'AZURE_CSE' | 'NONE' } ] [ MASTER_KEY = '<string>' ] ) ]formatTypeOptions ::= -- If TYPE = CSV COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE RECORD_DELIMITER = '<string>' | NONE FIELD_DELIMITER = '<string>' | NONE FILE_EXTENSION = '<string>' PARSE_HEADER = TRUE | FALSE SKIP_HEADER = <integer> SKIP_BLANK_LINES = TRUE | FALSE DATE_FORMAT = '<string>' | AUTO TIME_FORMAT = '<string>' | AUTO TIMESTAMP_FORMAT = '<string>' | AUTO BINARY_FORMAT = HEX | BASE64 | UTF8 ESCAPE = '<character>' | NONE ESCAPE_UNENCLOSED_FIELD = '<character>' | NONE TRIM_SPACE = TRUE | FALSE FIELD_OPTIONALLY_ENCLOSED_BY = '<character>' | NONE NULL_IF = ( '<string>' [ , '<string>' ... ] ) ERROR_ON_COLUMN_COUNT_MISMATCH = TRUE | FALSE REPLACE_INVALID_CHARACTERS = TRUE | FALSE EMPTY_FIELD_AS_NULL = TRUE | FALSE SKIP_BYTE_ORDER_MARK = TRUE | FALSE ENCODING = '<string>' | UTF8 -- If TYPE = JSON COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE DATE_FORMAT = '<string>' | AUTO TIME_FORMAT = '<string>' | AUTO TIMESTAMP_FORMAT = '<string>' | AUTO BINARY_FORMAT = HEX | BASE64 | UTF8 TRIM_SPACE = TRUE | FALSE NULL_IF = ( '<string>' [ , '<string>' ... ] ) FILE_EXTENSION = '<string>' ENABLE_OCTAL = TRUE | FALSE ALLOW_DUPLICATE = TRUE | FALSE STRIP_OUTER_ARRAY = TRUE | FALSE STRIP_NULL_VALUES = TRUE | FALSE REPLACE_INVALID_CHARACTERS = TRUE | FALSE IGNORE_UTF8_ERRORS = TRUE | FALSE SKIP_BYTE_ORDER_MARK = TRUE | FALSE -- If TYPE = AVRO COMPRESSION = AUTO | GZIP | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE TRIM_SPACE = TRUE | FALSE REPLACE_INVALID_CHARACTERS = TRUE | FALSE NULL_IF = ( '<string>' [ , '<string>' ... ] ) -- If TYPE = ORC TRIM_SPACE = TRUE | FALSE REPLACE_INVALID_CHARACTERS = TRUE | FALSE NULL_IF = ( '<string>' [ , '<string>' ... ] ) -- If TYPE = PARQUET COMPRESSION = AUTO | LZO | SNAPPY | NONE SNAPPY_COMPRESSION = TRUE | FALSE BINARY_AS_TEXT = TRUE | FALSE USE_LOGICAL_TYPE = TRUE | FALSE TRIM_SPACE = TRUE | FALSE REPLACE_INVALID_CHARACTERS = TRUE | FALSE NULL_IF = ( '<string>' [ , '<string>' ... ] ) -- If TYPE = XML COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE IGNORE_UTF8_ERRORS = TRUE | FALSE PRESERVE_SPACE = TRUE | FALSE STRIP_OUTER_ELEMENT = TRUE | FALSE DISABLE_SNOWFLAKE_DATA = TRUE | FALSE DISABLE_AUTO_CONVERT = TRUE | FALSE REPLACE_INVALID_CHARACTERS = TRUE | FALSE SKIP_BYTE_ORDER_MARK = TRUE | FALSE
디렉터리 테이블 구문¶
ALTER STAGE [ IF EXISTS ] <name> SET DIRECTORY = ( { ENABLE = TRUE | FALSE } )
ALTER STAGE [ IF EXISTS ] <name> REFRESH [ SUBPATH = '<relative-path>' ]
매개 변수¶
name
변경할 스테이지의 식별자를 지정합니다. 식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.
RENAME TO new_name
스테이지에 대해 새 식별자를 지정하는데, 스키마에 대해 고유한 식별자여야 합니다.
자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.
선택적으로 오브젝트의 이름을 바꾸는 동안 오브젝트를 다른 데이터베이스 및/또는 스키마로 이동할 수 있습니다. 그러려면 각각
db_name.schema_name.object_name
또는schema_name.object_name
형식으로 새 데이터베이스 및/또는 스키마 이름을 포함하는 정규화된new_name
값을 지정하십시오.참고
대상 데이터베이스 및/또는 스키마가 이미 있어야 합니다. 또한, 새 위치에 이름이 같은 오브젝트가 있으면 안 됩니다. 그렇지 않으면 문이 오류를 반환합니다.
오브젝트 소유자(즉, 오브젝트에 대한 OWNERSHIP 권한이 있는 역할) 역시 대상 스키마를 소유하지 않는 한 오브젝트를 관리되는 액세스 스키마로 이동하는 것은 금지됩니다.
SET ...
스테이지에 대해 설정할 옵션/속성을 지정합니다.
URL = ' ... '
, .STORAGE_INTEGRATION = ...
, .CREDENTIALS = ( ... )
, .ENCRYPTION = ( ... )
클라우드별 URL, 저장소 통합 또는 자격 증명 및/또는 외부 스테이지용 암호화를 수정합니다. 자세한 내용은 이 항목에 있는 외부 스테이지 매개 변수 섹션을 참조하십시오.
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]
태그 이름과 태그 문자열 값을 지정합니다.
태그 값은 항상 문자열이며, 태그 값의 최대 문자 수는 256자입니다.
문에서 태그를 지정하는 방법에 대한 자세한 내용은 오브젝트 및 열에 대한 태그 할당량 섹션을 참조하십시오.
COMMENT = 'string_literal'
스테이지에 대한 설명을 추가하거나 기존 설명을 덮어씁니다.
FILE_FORMAT = ( FORMAT_NAME = 'file_format_name' )
또는 .FILE_FORMAT = ( TYPE = CSV | JSON | AVRO | ORC | PARQUET | XML | CUSTOM [ ... ] )
다음 중 하나일 수 있는 스테이지의 파일 형식을 수정합니다.
FORMAT_NAME = file_format_name
스테이지에 사용할 기존 파일 형식 오브젝트를 지정합니다. 지정된 파일 형식 오브젝트에 따라 데이터 파일의 형식 유형(CSV, JSON 등)과 기타 형식 옵션이 결정됩니다.
문자열에 아무런 추가 형식 옵션도 지정되지 않습니다. 대신에 명명된 파일 형식 오브젝트는 데이터 로딩/언로딩에 사용되는 다른 파일 형식 옵션을 정의합니다. 자세한 내용은 CREATE FILE FORMAT 섹션을 참조하십시오.
TYPE = CSV | JSON | AVRO | ORC | PARQUET | XML | CUSTOM [ ... ]
스테이지의 파일 형식 유형을 지정합니다.
(COPY INTO <테이블> 을 사용해) 스테이지에서 데이터를 로딩하면 지원되는 모든 파일 형식 유형이 포함됩니다.
(COPY INTO <위치> 를 사용해) 데이터를 스테이지로 언로딩하면 CSV, JSON 또는 PARQUET가 포함됩니다.
파일 형식 유형을 지정하면 형식별 옵션을 추가로 수정할 수 있습니다. 자세한 내용은 이 항목에 있는 형식 유형 옵션 섹션을 참조하십시오.
CUSTOM
형식 유형은 기본 스테이지가 비정형 데이터를 보관하고FILE_PROCESSOR
복사 옵션과 함께 사용할 수 있을 뿐임을 지정합니다.참고
FORMAT_NAME
과TYPE
은 상호 배타적이므로, 한 스테이지에 대해 어느 하나만 지정할 수 있습니다.
참고
CREATE STAGE, ALTER STAGE, CREATE TABLE 또는 ALTER TABLE 명령을 사용하여 복사 옵션을 지정하지 마십시오. COPY INTO <테이블> 명령을 사용하여 복사 옵션을 지정하는 것이 좋습니다.
외부 스테이지 매개 변수(externalStageParams
)¶
URL = 'cloud_specific_url'
URL이 없는 스테이지는 내부 스테이지입니다.
경고
스테이지의
URL
매개 변수를 수정하면 스테이지에 의존하는 오브젝트에 대해 다음 기능이 중단될 수 있습니다.클라우드 메시징을 활용하여 데이터 로딩을 트리거하는 파이프 오브젝트(즉, 여기서
AUTO_INGEST = TRUE
).클라우드 메시징을 활용하여 메타데이터 새로 고침을 트리거하는 외부 테이블(즉, 여기서
AUTO_REFRESH = TRUE
).
Amazon S3
URL = 'protocol://bucket[/path/]'
로딩/언로딩할 데이터 파일을 저장하는 데 사용되는 외부 위치(기존 S3 버킷)의 URL을 수정합니다. 여기서는 다음과 같습니다.
protocol
은 다음 중 하나입니다.s3
은 중국 외부에 있는 공용 AWS 리전의 S3 저장소를 나타냅니다.s3china
는 중국에 있는 공용 AWS 리전의 S3 저장소를 나타냅니다.s3gov
는 정부 리전 의 S3 저장소를 나타냅니다.
저장소 통합을 사용하여 정부 리전 의 클라우드 저장소에 액세스하는 것은 동일한 정부 리전에 호스팅된 Snowflake 계정으로 제한됩니다.
마찬가지로, 중국에 있는 리전의 클라우드 저장소에 액세스해야 하는 경우 중국 내 동일한 리전에 호스팅된 Snowflake 계정에서만 저장소 통합을 사용할 수 있습니다.
이런 경우에는 저장소 통합을 사용하는 대신 CREATE STAGE 명령에 CREDENTIALS 매개 변수를 사용하여 인증을 위한 자격 증명을 제공하십시오.
bucket
은 S3 버킷의 이름입니다.정부 리전과 같은 비공개 AWS 리전의 S3 버킷은 지원되지 않습니다.
path
는 로딩할 파일 세트를 제한하는 클라우드 저장소 위치에 있는 파일의 선택적 경로로, 대/소문자를 구분합니다(즉, 파일 이름이 공통 문자열로 시작함). 다른 클라우드 저장소 서비스에서는 경로를 접두사 또는 폴더 라고도 합니다.
Google Cloud Storage
URL = 'gcs://bucket[/path/]'
로딩/언로딩할 데이터 파일을 저장하는 데 사용되는 외부 위치(기존 GCS 버킷)의 URL을 수정합니다. 여기서는 다음과 같습니다.
bucket
은 GCS 버킷의 이름입니다.path
는 로딩할 파일 세트를 제한하는 클라우드 저장소 위치에 있는 파일의 선택적 경로로, 대/소문자를 구분합니다(즉, 파일 이름이 공통 문자열로 시작함). 다른 클라우드 저장소 서비스에서는 경로를 접두사 또는 폴더 라고도 합니다.
Microsoft Azure
URL = 'azure://account.blob.core.windows.net/container[/path/]'
로딩할 데이터 파일을 저장하는 데 사용되는 외부 위치(기존 Azure 컨테이너)의 URL을 수정합니다. 여기서는 다음과 같습니다.
account
는 Azure 계정의 이름입니다(예:myaccount
). Data Lake Storage Gen2를 포함하여, 지원되는 모든 타입의 Azure blob 저장소 계정에 대해blob.core.windows.net
엔드포인트를 사용합니다.container
는 Azure 컨테이너의 이름입니다(예:mycontainer
).path
는 로딩할 파일 세트를 제한하는 클라우드 저장소 위치에 있는 파일의 선택적 경로로, 대/소문자를 구분합니다(즉, 파일 이름이 공통 문자열로 시작함). 다른 클라우드 저장소 서비스에서는 경로를 접두사 또는 폴더 라고도 합니다.
STORAGE_INTEGRATION = integration_name
또는 .CREDENTIALS = ( cloud_specific_credentials )
Amazon S3, Google Cloud Storage 또는 Microsoft Azure가 비공개인 경우에만 필요하며, 공용 버킷/컨테이너에는 필요하지 않음
Amazon S3
STORAGE_INTEGRATION = integration_name
외부 클라우드 저장소에 대한 인증 책임을 Snowflake ID 및 액세스 관리(IAM) 엔터티에 위임하는 데 사용되는 저장소 통합의 이름을 지정합니다. 자세한 내용은 CREATE STORAGE INTEGRATION 섹션을 참조하십시오.
참고
저장소 통합을 꼭 사용하는 것이 좋습니다. 이 옵션을 사용하면 스테이지를 만들거나 데이터를 로딩할 때 CREDENTIALS 매개 변수를 사용하여 클라우드 저장소 자격 증명을 제공할 필요가 없습니다.
CREDENTIALS = ( AWS_KEY_ID = 'string' AWS_SECRET_KEY = 'string' [ AWS_TOKEN = 'string' ] )
또는 .CREDENTIALS = ( AWS_ROLE = 'string' )
AWS에 연결하고 로딩/언로딩할 파일이 스테이징되는 개인 S3 버킷에 액세스하기 위한 보안 자격 증명을 수정합니다. 자세한 내용은 Amazon S3에 대한 보안 액세스 구성하기 섹션을 참조하십시오.
지정하는 자격 증명은 버킷에 대한 Snowflake 액세스 허가를 AWS IAM(Identity & Access Management) 사용자 또는 역할과 연결했는지 여부에 따라 다릅니다.
IAM 사용자: IAM 자격 증명이 필요합니다. 임시(일명 “범위 지정”) 자격 증명은 AWS STS(Security Token Service)에 의해 생성되며 다음 세 가지 구성 요소로 이루어집니다.
AWS_KEY_ID
AWS_SECRET_KEY
AWS_TOKEN
개인 버킷에 액세스하려면 세 가지가 모두 필요합니다. 지정된 기간이 지나면 임시 자격 증명이 만료되어 더 이상 사용할 수 없습니다. 그런 다음 유효한 임시 자격 증명으로 구성된 새 세트를 생성해야 합니다.
중요
COPY 명령을 사용하면 영구적인(일명 “장기”) 자격 증명을 사용할 수도 있지만, Snowflake에서는 보안상의 이유로 이런 자격 증명의 사용을 권장하지 않습니다. 영구 자격 증명을 사용해야 하는 경우에는 외부 스테이지의 영구 자격 증명을 주기적으로 새로 생성하는 것이 좋습니다.
IAM 역할: 보안 자격 증명과 액세스 키를 생략하고, 그 대신
AWS_ROLE
을 사용하여 역할을 식별하고 AWS 역할 ARN(Amazon Resource Name)을 지정합니다.중요
AWS IAM을 사용하여 개인 S3 버킷에 액세스하여 데이터를 로딩하거나 언로딩하는 기능은 이제 사용되지 않습니다(즉, 향후 릴리스(TBD)에서는 지원을 제거할 예정임). 그래서 대신에 이 기능을 사용하여 저장소 통합 오브젝트를 참조하는 기존의 S3 스테이지를 모두 수정하는 것이 좋습니다. 자세한 지침은 옵션 1: Amazon S3에 액세스하기 위한 Snowflake 저장소 통합 구성하기 섹션을 참조하십시오.
Google Cloud Storage
STORAGE_INTEGRATION = integration_name
외부 클라우드 저장소에 대한 인증 책임을 Snowflake ID 및 액세스 관리(IAM) 엔터티에 위임하는 데 사용되는 저장소 통합의 이름을 지정합니다. 자세한 내용은 CREATE STORAGE INTEGRATION 섹션을 참조하십시오.
Microsoft Azure
STORAGE_INTEGRATION = integration_name
외부 클라우드 저장소에 대한 인증 책임을 Snowflake ID 및 액세스 관리(IAM) 엔터티에 위임하는 데 사용되는 저장소 통합의 이름을 지정합니다. 자세한 내용은 CREATE STORAGE INTEGRATION 섹션을 참조하십시오.
참고
저장소 통합을 꼭 사용하는 것이 좋습니다. 이 옵션을 사용하면 스테이지를 만들거나 데이터를 로딩할 때 CREDENTIALS 매개 변수를 사용하여 클라우드 저장소 자격 증명을 제공할 필요가 없습니다.
CREDENTIALS = ( AZURE_SAS_TOKEN = 'string' )
Azure에 연결하고 로딩된 데이터를 포함한 파일을 스테이징하는 개인 컨테이너에 액세스하기 위해 SAS(공유 액세스 서명) 토큰을 수정합니다. 자격 증명은 Azure에서 생성됩니다.
ENCRYPTION = ( cloud_specific_encryption )
암호화된 파일에서 로딩하거나 암호화된 파일로 언로딩하는 경우에만 필요하며, 저장소 위치와 파일이 암호화되지 않은 경우에는 필요하지 않음
- 데이터 로딩:
저장소 위치에서 암호화된 파일의 암호를 해독하고 데이터를 추출하는 데 사용되는 암호화 설정을 수정합니다.
- 데이터 언로딩:
저장소 위치로 언로딩된 파일을 암호화하는 데 사용되는 암호화 설정을 수정합니다.
Amazon S3
ENCRYPTION = ( [ TYPE = 'AWS_CSE' ] [ MASTER_KEY = '<string>' ] | [ TYPE = 'AWS_SSE_S3' ] | [ TYPE = 'AWS_SSE_KMS' ] [ KMS_KEY_ID = '<string>' ] | [ TYPE = 'NONE' ] )
TYPE = ...
사용되는 암호화 유형을 지정합니다. 가능한 값은 다음과 같습니다.
AWS_CSE
: 클라이언트 측 암호화(MASTER_KEY
값 필요). 현재, 사용자가 제공하는 클라이언트 측 마스터 키 는 대칭 키만 될 수 있습니다.MASTER_KEY
값을 제공하면 Snowflake는TYPE = AWS_CSE
로 간주합니다(즉,MASTER_KEY
값을 제공할 때TYPE
이 필요하지 않음).AWS_SSE_S3
: 추가 암호화 설정이 필요 없는 서버 측 암호화입니다.AWS_SSE_KMS
: 선택적KMS_KEY_ID
값을 허용하는 서버 측 암호화입니다.
암호화 유형에 대한 자세한 내용은 클라이언트 측 암호화 또는 서버 측 암호화 에 대한 AWS 설명서를 참조하십시오.
NONE
: 암호화가 없습니다.
MASTER_KEY = 'string'
(AWS_CSE
암호화에만 적용)버킷의 파일을 암호화하는 데 사용되는 클라이언트 측 마스터 키를 지정합니다. 마스터 키는 Base64 인코딩 형식의 128비트 또는 256비트 키여야 합니다.
KMS_KEY_ID = 'string'
(AWS_SSE_KMS
암호화에만 적용)버킷으로 언로딩된 파일을 암호화하는 데 사용되는 AWS KMS 관리 키의 ID를 선택적으로 지정합니다. 아무런 값도 입력하지 않으면 언로딩 시 기본 KMS 키 ID를 사용해 파일을 암호화합니다.
데이터를 로딩할 때는 이 값을 무시합니다.
Google Cloud Storage
ENCRYPTION = ( [ TYPE = 'GCS_SSE_KMS' | 'NONE' ] [ KMS_KEY_ID = 'string' ] )
TYPE = ...
사용되는 암호화 유형을 지정합니다. 가능한 값은 다음과 같습니다.
GCS_SSE_KMS
: 선택적KMS_KEY_ID
값을 허용하는 서버 측 암호화입니다.자세한 내용은 Google Cloud Platform 설명서를 참조하십시오.
NONE
: 암호화가 없습니다.
KMS_KEY_ID = 'string'
(GCS_SSE_KMS
암호화에만 적용)버킷으로 언로딩된 파일을 암호화하는 데 사용되는 Cloud KMS 관리 키의 ID를 선택적으로 지정합니다. 아무런 값도 입력하지 않으면 언로딩 시 버킷에 대해 설정된 기본 KMS 키 ID를 사용해 파일을 암호화합니다.
데이터를 로딩할 때는 이 값을 무시합니다. 서비스 계정이 버킷에 있는 데이터의 암호를 해독하는 데 충분한 권한을 가지고 있다면 로딩 작업에 성공할 것입니다.
Microsoft Azure
ENCRYPTION = ( [ TYPE = 'AZURE_CSE' | 'NONE' ] [ MASTER_KEY = 'string' ] )
TYPE = ...
사용되는 암호화 유형을 지정합니다. 가능한 값은 다음과 같습니다.
AZURE_CSE
: 클라이언트 측 암호화(MASTER_KEY 값 필요). 자세한 내용은 Microsoft Azure 설명서에서 클라이언트 측 암호화 정보 를 참조하십시오.NONE
: 암호화가 없습니다.
MASTER_KEY = 'string'
(AZURE_CSE 암호화에만 적용)파일을 암호화하거나 암호 해독하는 데 사용되는 클라이언트 측 마스터 키를 지정합니다. 마스터 키는 Base64 인코딩 형식의 128비트 또는 256비트 키여야 합니다.
디렉터리 테이블 매개 변수¶
ENABLE = TRUE | FALSE
스테이지에 디렉터리 테이블을 추가할지 여부를 지정합니다. 값이 TRUE이면 디렉터리 테이블이 스테이지에 추가됩니다.
참고
S3 호환 외부 스테이지 에 대해 이 매개 변수를 TRUE로 설정할 수 없습니다. S3 호환 외부 스테이지의 메타데이터는 자동으로 새로 고칠 수 없습니다.
기본값:
FALSE
REFRESH
디렉터리 테이블 정의에서 참조하는 스테이지 상태 데이터 파일에 액세스하고 테이블 메타데이터를 업데이트합니다.
경로의 새 파일이 테이블 메타데이터에 추가됩니다.
경로의 파일에 대한 변경 사항은 테이블 메타데이터에서 업데이트됩니다.
경로에 더 이상 없는 파일은 테이블 메타데이터에서 제거됩니다.
스테이지에 파일이 추가, 업데이트 또는 삭제될 때마다 이 명령을 실행할 수 있습니다. 이 단계에서는 디렉터리 테이블에 대한 스테이지 정의에서 최신 관련 파일 세트와 메타데이터를 동기화합니다.
SUBPATH = '<relative-path>'
선택적으로, 데이터 파일의 특정 서브세트에 대한 메타데이터를 새로 고칠 상대 경로를 지정합니다.
형식 유형 옵션(formatTypeOptions
)¶
지정된 파일 형식 유형(FILE_FORMAT = ( TYPE = ... )
)에 따라 다음 형식별 옵션(공백, 쉼표 또는 줄 바꿈으로 구분) 중 하나 이상을 포함할 수 있습니다.
TYPE = CSV¶
COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
- 용도:
데이터 로딩, 데이터 언로딩, 외부 테이블
- 정의:
데이터를 로딩할 때 데이터 파일에 대한 현재 압축 알고리즘을 지정합니다. Snowflake는 이 옵션을 사용하여 이미 압축된 데이터 파일을 압축한 방식을 감지해 로딩을 위해 파일의 압축 데이터를 추출할 수 있습니다.
데이터를 언로딩할 때 지정된 압축 알고리즘을 사용하여 데이터 파일을 압축합니다.
- 값:
지원되는 값
참고
AUTO
데이터를 로딩할 때 현재 자동으로 감지할 수 없는 Brotli 압축 파일을 제외하고 압축 알고리즘이 자동으로 감지됩니다. 데이터를 언로딩할 때 파일은 기본값인 gzip을 사용하여 자동으로 압축됩니다.
GZIP
BZ2
BROTLI
Brotli 압축 파일을 로딩/언로딩할 때 지정해야 합니다.
ZSTD
Zstandard v0.8 이상이 지원됩니다.
DEFLATE
Deflate 압축 파일(zlib 헤더 RFC1950 포함).
RAW_DEFLATE
원시 Deflate 압축 파일(헤더 RFC1951 제외).
NONE
데이터를 로딩할 때 파일이 압축되지 않았음을 나타냅니다. 데이터를 언로딩할 때 언로딩된 파일이 압축되지 않도록 지정합니다.
- 기본값:
AUTO
RECORD_DELIMITER = 'string' | NONE
- 용도:
데이터 로딩, 데이터 언로딩, 외부 테이블
- 정의:
입력 파일(데이터 로딩) 또는 언로딩된 파일(데이터 언로딩)에서 레코드를 구분하는 하나 이상의 싱글바이트 또는 멀티바이트 문자입니다. 일반적인 이스케이프 시퀀스 또는 다음 싱글바이트 또는 멀티바이트 문자를 허용합니다.
- 싱글바이트 문자:
8진수 값(
\\
접두사가 붙음) 또는 16진수 값(0x
또는\x
접두사가 붙음). 예를 들어, 곡절 악센트(^
) 문자로 구분된 레코드의 경우 8진수(\\136
) 또는 16진수(0x5e
) 값을 지정합니다.- 멀티바이트 문자:
16진수 값(
\x
접두사가 붙음). 예를 들어, 센트(¢
) 문자로 구분된 레코드의 경우 16진수(\xC2\xA2
) 값을 지정합니다.RECORD_DELIMITER 또는 FIELD_DELIMITER의 구분 기호는 다른 파일 형식 옵션(예:
FIELD_DELIMITER = 'aa' RECORD_DELIMITER = 'aabb'
)에 대한 구분 기호의 하위 문자열일 수 없습니다.
지정된 구분 기호는 임의의 바이트 시퀀스가 아니라 유효한 UTF-8 문자여야 합니다. 또한, 구분 기호는 최대 20자로 제한됩니다.
NONE
의 값도 허용합니다.- 기본값:
- 데이터 로딩:
줄 바꿈 문자입니다. “줄 바꿈”은
\r\n
이 Windows 플랫폼에서 파일에 대한 줄 바꿈으로 이해되게끔 하는 논리입니다.- 데이터 언로딩:
줄 바꿈 문자(
\n
).
FIELD_DELIMITER = 'string' | NONE
- 용도:
데이터 로딩, 데이터 언로딩, 외부 테이블
- 정의:
입력 파일(데이터 로딩) 또는 언로딩된 파일(데이터 언로딩)에서 필드를 구분하는 하나 이상의 싱글바이트 또는 멀티바이트 문자입니다. 일반적인 이스케이프 시퀀스 또는 다음 싱글바이트 또는 멀티바이트 문자를 허용합니다.
- 싱글바이트 문자:
8진수 값(
\\
접두사가 붙음) 또는 16진수 값(0x
또는\x
접두사가 붙음). 예를 들어, 곡절 악센트(^
) 문자로 구분된 레코드의 경우 8진수(\\136
) 또는 16진수(0x5e
) 값을 지정합니다.- 멀티바이트 문자:
16진수 값(
\x
접두사가 붙음). 예를 들어, 센트(¢
) 문자로 구분된 레코드의 경우 16진수(\xC2\xA2
) 값을 지정합니다.RECORD_DELIMITER 또는 FIELD_DELIMITER의 구분 기호는 다른 파일 형식 옵션(예:
FIELD_DELIMITER = 'aa' RECORD_DELIMITER = 'aabb'
)에 대한 구분 기호의 하위 문자열일 수 없습니다.참고
비 ASCII 문자의 경우 결정적 동작을 얻으려면 16진수 바이트 시퀀스 값을 사용해야 합니다.
지정된 구분 기호는 임의의 바이트 시퀀스가 아니라 유효한 UTF-8 문자여야 합니다. 또한, 구분 기호는 최대 20자로 제한됩니다.
NONE
의 값도 허용합니다.- 기본값:
쉼표(
,
)
FILE_EXTENSION = 'string' | NONE
- 용도:
데이터 언로딩 전용
- 정의:
스테이지로 언로딩된 파일의 확장명을 지정합니다. 모든 확장명을 허용합니다. 원하는 소프트웨어나 서비스에서 읽을 수 있는 파일 확장명은 사용자가 지정해야 합니다.
- 기본값:
null, 즉 파일 확장명이 형식 유형
.csv[compression]
으로 결정된다는 의미로, 여기서compression
은COMPRESSION
이 설정된 경우 압축 방법에 따라 추가되는 확장명입니다.
참고
SINGLE
복사 옵션이TRUE
인 경우 COPY 명령을 실행하면 기본적으로 파일 확장명이 없는 파일이 언로딩됩니다. 파일 확장명을 지정하려면internal_location
또는external_location
경로(예:copy into @stage/data.csv
)에 파일 이름과 확장명을 입력하십시오.PARSE_HEADER = TRUE | FALSE
- 용도:
데이터 로딩 전용
- 정의:
열 이름을 결정하기 위해 데이터 파일의 첫 번째 행 머리글을 사용할지 여부를 지정하는 부울입니다.
이 파일 형식 옵션은 다음 작업에만 적용됩니다.
INFER_SCHEMA 함수를 사용하여 열 정의를 자동으로 감지.
INFER_SCHEMA 함수 및 MATCH_BY_COLUMN_NAME 복사 옵션을 사용하여 CSV 데이터를 개별 열에 로드.
이 옵션을 TRUE로 설정하면 첫 번째 행 머리글을 사용해 열 이름을 결정합니다. 기본값 FALSE로 그대로 두면 열 이름이 c 로 반환되며 여기서 는 열의 위치입니다.
참고
이 옵션은 외부 테이블에서 지원되지 않습니다.
SKIP_HEADER 를 설정한 경우
PARSE_HEADER = TRUE
옵션은 지원되지 않습니다.
기본값:
FALSE
SKIP_HEADER = integer
- 용도:
데이터 로딩 및 외부 테이블
- 정의:
파일 시작에서 건너뛸 줄의 개수입니다.
참고로, SKIP_HEADER는 헤더 줄이 무엇인지 결정하기 위해 RECORD_DELIMITER 또는 FIELD_DELIMITER 값을 사용하지는 않으며, 오히려 파일에서 지정된 수만큼 CRLF(캐리지 리턴, 줄 바꿈)로 구분된 줄을 건너뜁니다. 그런 다음 RECORD_DELIMITER와 FIELD_DELIMITER를 사용해 로딩할 데이터 행을 결정합니다.
- 기본값:
0
SKIP_BLANK_LINES = TRUE | FALSE
- 용도:
데이터 로딩 및 외부 테이블
- 정의:
데이터 파일에서 발견되는 빈 줄을 건너뛰도록 지정하는 부울입니다. 그렇지 않으면 빈 줄로 인해 레코드 끝 오류를 발생합니다(기본 동작).
기본값:
FALSE
DATE_FORMAT = 'string' | AUTO
- 용도:
데이터 로딩 및 언로딩
- 정의:
데이터 파일(데이터 로딩) 또는 테이블(데이터 언로딩)의 날짜 값 형식을 정의합니다. 값이 지정되지 않거나
AUTO
인 경우 DATE_INPUT_FORMAT (데이터 로딩) 또는 DATE_OUTPUT_FORMAT (데이터 언로딩) 매개 변수의 값이 사용됩니다.- 기본값:
AUTO
TIME_FORMAT = 'string' | AUTO
- 용도:
데이터 로딩 및 언로딩
- 정의:
데이터 파일(데이터 로딩) 또는 테이블(데이터 언로딩)의 시간 값 형식을 정의합니다. 값이 지정되지 않거나
AUTO
인 경우 TIME_INPUT_FORMAT (데이터 로딩) 또는 TIME_OUTPUT_FORMAT (데이터 언로딩) 매개 변수의 값이 사용됩니다.- 기본값:
AUTO
TIMESTAMP_FORMAT = string' | AUTO
- 용도:
데이터 로딩 및 언로딩
- 정의:
데이터 파일(데이터 로딩) 또는 테이블(데이터 언로딩)의 타임스탬프 값 형식을 정의합니다. 값이 지정되지 않거나
AUTO
인 경우 TIMESTAMP_INPUT_FORMAT (데이터 로딩) 또는 TIMESTAMP_OUTPUT_FORMAT (데이터 언로딩) 매개 변수의 값이 사용됩니다.- 기본값:
AUTO
BINARY_FORMAT = HEX | BASE64 | UTF8
- 용도:
데이터 로딩 및 언로딩
- 정의:
이진 입력 또는 출력의 인코딩 형식을 정의합니다. 이 옵션은 테이블의 이진 열로 데이터를 로딩하거나 이진 열에서 데이터를 언로딩할 때 사용할 수 있습니다.
- 기본값:
HEX
ESCAPE = 'character' | NONE
- 용도:
데이터 로딩 및 언로딩
- 정의:
괄호로 묶이거나 묶이지 않은 필드 값에 대한 이스케이프 문자로 사용되는 싱글바이트 문자열입니다. 이스케이프 문자는 문자 시퀀스의 후속 문자에 대한 대체 해석을 호출합니다. ESCAPE 문자를 사용하여 데이터에 있는
FIELD_OPTIONALLY_ENCLOSED_BY
문자의 인스턴스를 리터럴로 해석할 수 있습니다.일반적인 이스케이프 시퀀스, 8진수 값 또는 16진수 값을 허용합니다.
- 데이터 로딩하기:
괄호로 묶인 필드에만 이스케이프 문자를 지정합니다.
FIELD_OPTIONALLY_ENCLOSED_BY
를 설정하여 필드를 묶는 데 사용되는 문자를 지정합니다.참고
이 파일 형식 옵션은 싱글바이트 문자만 지원합니다. UTF-8 문자 인코딩은 상위 ASCII 문자를 멀티바이트 문자로 나타냅니다. 데이터 파일이 UTF-8 문자 세트로 인코딩된 경우 상위 ASCII 문자를 옵션 값으로 지정할 수 없습니다.
또한 상위 ASCII 문자를 지정하는 경우
ENCODING = 'string'
파일 형식 옵션을 데이터 파일의 문자 인코딩으로 설정하여 문자가 올바르게 해석되도록 보장하는 것이 좋습니다.- 데이터 언로딩하기:
이 옵션이 설정되면
ESCAPE_UNENCLOSED_FIELD
에 대해 설정된 이스케이프 문자를 재정의합니다.- 기본값:
NONE
ESCAPE_UNENCLOSED_FIELD = 'character' | NONE
- 용도:
데이터 로딩, 데이터 언로딩, 외부 테이블
- 정의:
괄호로 묶이지 않은 필드 값에 대해서만 이스케이프 문자로 사용되는 싱글바이트 문자열입니다. 이스케이프 문자는 문자 시퀀스의 후속 문자에 대한 대체 해석을 호출합니다. ESCAPE 문자를 사용하여 데이터에 있는
FIELD_DELIMITER
또는RECORD_DELIMITER
문자의 인스턴스를 리터럴로 해석할 수 있습니다. 이스케이프 문자는 데이터에서 자신의 인스턴스를 이스케이프하는 데 사용할 수도 있습니다.일반적인 이스케이프 시퀀스, 8진수 값 또는 16진수 값을 허용합니다.
- 데이터 로딩하기:
괄호로 묶이지 않은 필드에만 이스케이프 문자를 지정합니다.
참고
기본값은
\\
입니다. 데이터 파일의 행이 백슬래시(\
) 문자로 끝날 경우 이 문자는RECORD_DELIMITER
파일 형식 옵션에 대해 지정된 줄 바꿈 또는 캐리지 리턴 문자를 이스케이프합니다. 결과적으로, 로딩 작업에서 이 행과 다음 행을 단일 데이터 행으로 처리합니다. 이 문제를 방지하려면 값을NONE
으로 설정하십시오.이 파일 형식 옵션은 싱글바이트 문자만 지원합니다. UTF-8 문자 인코딩은 상위 ASCII 문자를 멀티바이트 문자로 나타냅니다. 데이터 파일이 UTF-8 문자 세트로 인코딩된 경우 상위 ASCII 문자를 옵션 값으로 지정할 수 없습니다.
또한 상위 ASCII 문자를 지정하는 경우
ENCODING = 'string'
파일 형식 옵션을 데이터 파일의 문자 인코딩으로 설정하여 문자가 올바르게 해석되도록 보장하는 것이 좋습니다.
- 데이터 언로딩하기:
ESCAPE
가 설정된 경우 해당 파일 형식 옵션에 대해 설정된 이스케이프 문자가 이 옵션을 재정의합니다.- 기본값:
백슬래시(
\\
)
TRIM_SPACE = TRUE | FALSE
- 용도:
데이터 로딩 및 외부 테이블
- 정의:
필드에서 공백을 제거할지 여부를 지정하는 부울입니다.
예를 들어, 외부 데이터베이스 소프트웨어에서 필드를 따옴표로 묶지만 선행 공백을 삽입하는 경우 Snowflake는 여는 따옴표 문자가 아닌 선행 공백을 필드의 시작으로 읽습니다(즉, 따옴표는 필드 데이터 문자열의 일부로 해석됨). 데이터 로딩 중에 불필요한 공백을 제거하려면 이 옵션을
TRUE
로 설정하십시오.또 다른 예로, 선행 또는 후행 공백이 문자열을 묶는 따옴표 주위에 있는 경우 이 옵션을 사용하여 주위의 공백을 제거하고
FIELD_OPTIONALLY_ENCLOSED_BY
옵션을 사용하여 따옴표를 제거할 수 있습니다. 따옴표 안의 모든 공백은 그대로 유지됩니다. 예를 들어FIELD_DELIMITER = '|'
및FIELD_OPTIONALLY_ENCLOSED_BY = '"'
를 가정하면 다음과 같습니다.|"Hello world"| /* loads as */ >Hello world< |" Hello world "| /* loads as */ > Hello world < | "Hello world" | /* loads as */ >Hello world<
(이 예에서 대괄호는 로딩되지 않습니다. 대괄호는 로딩된 문자열의 시작과 끝의 경계를 정하는 데 사용됩니다.)
- 기본값:
FALSE
FIELD_OPTIONALLY_ENCLOSED_BY = 'character' | NONE
- 용도:
데이터 로딩, 데이터 언로딩, 외부 테이블
- 정의:
문자열을 묶는 데 사용되는 문자입니다. 값은
NONE
, 작은따옴표 문자('
) 또는 큰따옴표 문자("
)일 수 있습니다. 작은따옴표 문자를 사용하려면 8진수 또는 16진수 표현(0x27
) 또는 이중 작은따옴표로 묶인 이스케이프(''
)를 사용하십시오.- 데이터 언로딩 전용:
원본 테이블의 필드에 이 문자가 포함되어 있으면 Snowflake는 언로딩을 위해 동일한 문자를 사용하여 해당 문자를 이스케이프합니다. 예를 들어, 값이 큰따옴표 문자이고 필드에 문자열
A "B" C
가 포함된 경우 Snowflake는 다음과 같이 언로딩을 위해 큰따옴표를 이스케이프합니다.A ""B"" C
- 기본값:
NONE
NULL_IF = ( 'string1' [ , 'string2' , ... ] )
- 용도:
데이터 로딩, 데이터 언로딩, 외부 테이블
- 정의:
SQL NULL로 변환하거나 그 반대로 변환하는 데 사용되는 문자열:
데이터를 로딩할 때 Snowflake는 데이터 로딩 소스에서 이러한 값을 SQL NULL로 바꿉니다. 둘 이상의 문자열을 지정하려면 문자열 목록을 괄호로 묶고 쉼표를 사용하여 각각의 값을 구분합니다.
Snowflake는 데이터 타입과 관계없이 값의 모든 인스턴스를 NULL로 변환합니다. 예를 들어
2
가 값으로 지정되면2
의 모든 인스턴스가 문자열 또는 숫자로 변환됩니다.예:
NULL_IF = ('\N', 'NULL', 'NUL', '')
이 옵션에는 빈 문자열이 포함될 수 있습니다.
데이터를 언로딩할 때, Snowflake는 SQL NULL 값을 목록의 첫 번째 값으로 변환합니다.
- 기본값:
\\N
(즉,ESCAPE_UNENCLOSED_FIELD
값이\\
인 것으로 가정하는 NULL)
ERROR_ON_COLUMN_COUNT_MISMATCH = TRUE | FALSE
- 용도:
데이터 로딩 전용
- 정의:
입력 파일의 구분된 열(즉, 필드) 수가 해당 테이블의 열 수와 일치하지 않는 경우 구문 분석 오류를 생성할지 여부를 지정하는 부울입니다.
FALSE
로 설정하면 오류가 발생하지 않고 로딩이 계속됩니다. 파일이 성공적으로 로딩된 경우 다음과 같습니다.입력 파일에 테이블의 열보다 많은 수의 필드가 있는 레코드가 포함된 경우 일치하는 필드는 파일에서 나오는 순서대로 로딩되고 나머지 필드는 로딩되지 않습니다.
입력 파일에 테이블의 열보다 적은 수의 필드가 있는 레코드가 포함된 경우 테이블에서 일치하지 않는 열이 NULL 값과 함께 로딩됩니다.
이 옵션에서는 입력 파일 내의 모든 레코드가 같은 길이라고 가정합니다(즉, 이 매개 변수에 대해 지정된 값과 관계없이 다양한 길이의 레코드를 포함한 파일이 오류를 반환함).
- 기본값:
TRUE
참고
로딩하는 동안 데이터 변환 시(즉, 쿼리를 COPY 명령의 소스로 사용), 이 옵션은 무시됩니다. 데이터 파일의 열 개수 및 순서는 대상 테이블과 같지 않아도 됩니다.
REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- 용도:
데이터 로딩 전용
- 정의:
유효하지 않은 UTF-8 문자를 유니코드 대체 문자(
�
)로 대체할지 여부를 지정하는 부울.
TRUE
로 설정하면 Snowflake가 잘못된 UTF-8 문자를 유니코드 대체 문자로 바꿉니다.FALSE
로 설정하면 잘못된 UTF-8 문자 인코딩이 감지될 때 로딩 작업에서 오류가 발생합니다.- 기본값:
FALSE
EMPTY_FIELD_AS_NULL = TRUE | FALSE
- 용도:
데이터 로딩, 데이터 언로딩, 외부 테이블
- 정의:
데이터를 로딩할 때 두 개의 연속적인 구분 기호(예:
,,
)로 표시되는 입력 파일의 빈 필드에 SQL NULL을 삽입할지 여부를 지정합니다.FALSE
로 설정하면 Snowflake가 빈 필드를 해당 열 타입으로 캐스팅하려고 시도합니다. STRING 유형의 열에 빈 문자열이 삽입됩니다. 다른 열 타입의 경우 COPY 명령에서 오류가 발생합니다.데이터를 언로딩할 때 이 옵션은
FIELD_OPTIONALLY_ENCLOSED_BY
와 함께 사용됩니다.FIELD_OPTIONALLY_ENCLOSED_BY = NONE
일 때,EMPTY_FIELD_AS_NULL = FALSE
를 설정하면 필드 값을 묶는 따옴표 없이 빈 문자열 값으로 테이블의 빈 문자열을 언로딩하도록 지정됩니다.TRUE
로 설정하면FIELD_OPTIONALLY_ENCLOSED_BY
가 문자열을 묶을 문자를 지정해야 합니다.
- 기본값:
TRUE
SKIP_BYTE_ORDER_MARK = TRUE | FALSE
- 용도:
데이터 로딩 전용
- 정의:
데이터 파일에 있는 경우 BOM(바이트 순서 표시)를 건너뛸지 여부를 지정하는 부울입니다. BOM은 데이터 파일의 시작 부분에서 바이트 순서와 인코딩 형식을 정의하는 문자 코드입니다.
FALSE
로 설정하면 Snowflake가 데이터 파일에 있는 모든 BOM을 인식하므로, BOM에서 오류가 발생하거나 테이블의 첫 번째 열에 병합되는 결과가 될 수 있습니다.- 기본값:
TRUE
ENCODING = 'string'
- 용도:
데이터 로딩 및 외부 테이블
- 정의:
데이터를 테이블로 로딩할 때 원본 데이터의 문자 세트를 지정하는 문자열(상수)입니다.
문자 세트
ENCODING
값지원되는 언어
참고
Big5
BIG5
중국어 번체
EUC-JP
EUCJP
일본어
EUC-KR
EUCKR
한국어
GB18030
GB18030
중국어
IBM420
IBM420
아랍어
IBM424
IBM424
히브리어
IBM949
IBM949
한국어
ISO-2022-CN
ISO2022CN
중국어 간체
ISO-2022-JP
ISO2022JP
일본어
ISO-2022-KR
ISO2022KR
한국어
ISO-8859-1
ISO88591
덴마크어, 네덜란드어, 영어, 프랑스어, 독일어, 이탈리아어, 노르웨이어, 포르투갈어, 스웨덴어
ISO-8859-2
ISO88592
체코어, 헝가리어, 폴란드어, 루마니아어
ISO-8859-5
ISO88595
러시아어
ISO-8859-6
ISO88596
아랍어
ISO-8859-7
ISO88597
그리스어
ISO-8859-8
ISO88598
히브리어
ISO-8859-9
ISO88599
터키어
ISO-8859-15
ISO885915
덴마크어, 네덜란드어, 영어, 프랑스어, 독일어, 이탈리아어, 노르웨이어, 포르투갈어, 스웨덴어
유로화 기호를 포함하여, 8자를 제외하면 ISO-8859-1과 동일합니다.
KOI8-R
KOI8R
러시아어
Shift_JIS
SHIFTJIS
일본어
UTF-8
UTF8
모든 언어
구분된 파일(CSV, TSV 등)에서 데이터를 로딩하는 경우 UTF-8이 기본값입니다. . . 지원되는 다른 모든 파일 형식(JSON, Avro 등)에서 데이터를 로딩할 뿐 아니라 언로딩하는 경우 UTF-8이 유일하게 지원되는 문자 세트입니다.
UTF-16
UTF16
모든 언어
UTF-16BE
UTF16BE
모든 언어
UTF-16LE
UTF16LE
모든 언어
UTF-32
UTF32
모든 언어
UTF-32BE
UTF32BE
모든 언어
UTF-32LE
UTF32LE
모든 언어
windows-874
WINDOWS874
태국어
windows-949
WINDOWS949
한국어
windows-1250
WINDOWS1250
체코어, 헝가리어, 폴란드어, 루마니아어
windows-1251
WINDOWS1251
러시아어
windows-1252
WINDOWS1252
덴마크어, 네덜란드어, 영어, 프랑스어, 독일어, 이탈리아어, 노르웨이어, 포르투갈어, 스웨덴어
windows-1253
WINDOWS1253
그리스어
windows-1254
WINDOWS1254
터키어
windows-1255
WINDOWS1255
히브리어
windows-1256
WINDOWS1256
아랍어
- 기본값:
UTF8
참고
Snowflake는 모든 데이터를 UTF-8 문자 세트에 내부적으로 저장합니다. 데이터는 UTF-8로 변환된 후 Snowflake에 로딩됩니다.
TYPE = JSON¶
COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
- 용도:
데이터 로딩 및 외부 테이블
- 정의:
데이터를 로딩할 때 데이터 파일에 대한 현재 압축 알고리즘을 지정합니다. Snowflake는 이 옵션을 사용하여 이미 압축된 데이터 파일을 압축한 방식을 감지해 로딩을 위해 파일의 압축 데이터를 추출할 수 있습니다.
데이터를 언로딩할 때 지정된 압축 알고리즘을 사용하여 데이터 파일을 압축합니다.
- 값:
지원되는 값
참고
AUTO
데이터를 로딩할 때 현재 자동으로 감지할 수 없는 Brotli 압축 파일을 제외하고 압축 알고리즘이 자동으로 감지됩니다. 데이터를 언로딩할 때 파일은 기본값인 gzip을 사용하여 자동으로 압축됩니다.
GZIP
BZ2
BROTLI
Brotli 압축 파일을 로딩/언로딩할 경우 지정해야 합니다.
ZSTD
Zstandard v0.8 이상이 지원됩니다.
DEFLATE
Deflate 압축 파일(zlib 헤더 RFC1950 포함).
RAW_DEFLATE
원시 Deflate 압축 파일(헤더 RFC1951 제외).
NONE
데이터를 로딩할 때 파일이 압축되지 않았음을 나타냅니다. 데이터를 언로딩할 때 언로딩된 파일이 압축되지 않도록 지정합니다.
- 기본값:
AUTO
DATE_FORMAT = 'string' | AUTO
- 용도:
데이터 로딩 전용
- 정의:
데이터 파일에서 날짜 문자열 값 형식을 정의합니다. 값이 지정되지 않거나
AUTO
인 경우 DATE_INPUT_FORMAT 매개 변수의 값이 사용됩니다.이 파일 형식 옵션은 다음 작업에만 적용됩니다.
MATCH_BY_COLUMN_NAME 복사 옵션을 사용하여 JSON 데이터를 별도의 열에 로딩하는 작업.
COPY 문에 쿼리를 지정하여 별개의 열에 JSON 데이터를 로딩하는 작업(즉, COPY 변환).
- 기본값:
AUTO
TIME_FORMAT = 'string' | AUTO
- 용도:
데이터 로딩 전용
- 정의:
데이터 파일에서 시간 문자열 값 형식을 정의합니다. 값이 지정되지 않거나
AUTO
인 경우 TIME_INPUT_FORMAT 매개 변수의 값이 사용됩니다.이 파일 형식 옵션은 다음 작업에만 적용됩니다.
MATCH_BY_COLUMN_NAME 복사 옵션을 사용하여 JSON 데이터를 별도의 열에 로딩하는 작업.
COPY 문에 쿼리를 지정하여 별개의 열에 JSON 데이터를 로딩하는 작업(즉, COPY 변환).
- 기본값:
AUTO
TIMESTAMP_FORMAT = string' | AUTO
- 용도:
데이터 로딩 전용
- 정의:
데이터 파일에서 타임스탬프 문자열 값 형식을 정의합니다. 값이 지정되지 않거나
AUTO
인 경우 TIMESTAMP_INPUT_FORMAT 매개 변수의 값이 사용됩니다.이 파일 형식 옵션은 다음 작업에만 적용됩니다.
MATCH_BY_COLUMN_NAME 복사 옵션을 사용하여 JSON 데이터를 별도의 열에 로딩하는 작업.
COPY 문에 쿼리를 지정하여 별개의 열에 JSON 데이터를 로딩하는 작업(즉, COPY 변환).
- 기본값:
AUTO
BINARY_FORMAT = HEX | BASE64 | UTF8
- 용도:
데이터 로딩 전용
- 정의:
데이터 파일의 이진 문자열 값에 대한 인코딩 형식을 정의합니다. 이 옵션은 테이블의 이진 열로 데이터를 로딩할 때 사용할 수 있습니다.
이 파일 형식 옵션은 다음 작업에만 적용됩니다.
MATCH_BY_COLUMN_NAME 복사 옵션을 사용하여 JSON 데이터를 별도의 열에 로딩하는 작업.
COPY 문에 쿼리를 지정하여 별개의 열에 JSON 데이터를 로딩하는 작업(즉, COPY 변환).
- 기본값:
HEX
TRIM_SPACE = TRUE | FALSE
- 용도:
데이터 로딩 전용
- 정의:
문자열에서 선행 공백과 후행 공백을 제거할지 여부를 지정하는 부울입니다.
예를 들어, 외부 데이터베이스 소프트웨어에서 필드를 따옴표로 묶지만 선행 공백을 삽입하는 경우 Snowflake는 여는 따옴표 문자가 아닌 선행 공백을 필드의 시작으로 읽습니다(즉, 따옴표는 필드 데이터 문자열의 일부로 해석됨). 데이터 로딩 중에 불필요한 공백을 제거하려면 이 옵션을
TRUE
로 설정하십시오.이 파일 형식 옵션은 MATCH_BY_COLUMN_NAME 복사 옵션을 사용하여 JSON 데이터를 별도의 열에 로딩할 때만 다음 작업에 적용됩니다.
- 기본값:
FALSE
NULL_IF = ( 'string1' [ , 'string2' , ... ] )
- 용도:
데이터 로딩 전용
- 정의:
SQL NULL로 변환하거나 그 반대로 변환하는 데 사용되는 문자열입니다. Snowflake는 데이터 로딩 소스의 이러한 문자열을 SQL NULL로 바꿉니다. 둘 이상의 문자열을 지정하려면 문자열 목록을 괄호로 묶고 쉼표를 사용하여 각각의 값을 구분합니다.
이 파일 형식 옵션은 MATCH_BY_COLUMN_NAME 복사 옵션을 사용하여 JSON 데이터를 별도의 열에 로딩할 때만 다음 작업에 적용됩니다.
Snowflake는 데이터 타입과 관계없이 값의 모든 인스턴스를 NULL로 변환합니다. 예를 들어
2
가 값으로 지정되면2
의 모든 인스턴스가 문자열 또는 숫자로 변환됩니다.예:
NULL_IF = ('\N', 'NULL', 'NUL', '')
이 옵션에는 빈 문자열이 포함될 수 있습니다.
- 기본값:
\\N
(즉,ESCAPE_UNENCLOSED_FIELD
값이\\
인 것으로 가정하는 NULL)
FILE_EXTENSION = 'string' | NONE
- 용도:
데이터 언로딩 전용
- 정의:
스테이지로 언로딩된 파일의 확장명을 지정합니다. 모든 확장명을 허용합니다. 원하는 소프트웨어나 서비스에서 읽을 수 있는 파일 확장명은 사용자가 지정해야 합니다.
- 기본값:
null, 즉 파일 확장명이 형식 유형
.json[compression]
으로 결정된다는 의미로, 여기서compression
은COMPRESSION
이 설정된 경우 압축 방법에 따라 추가되는 확장명입니다.
ENABLE_OCTAL = TRUE | FALSE
- 용도:
데이터 로딩 전용
- 정의:
8진수 숫자의 구문 분석을 할 수 있게 해주는 부울입니다.
- 기본값:
FALSE
ALLOW_DUPLICATE = TRUE | FALSE
- 용도:
데이터 로딩 및 외부 테이블
- 정의:
중복 오브젝트 필드 이름을 허용하도록 지정하는 부울입니다(마지막 이름만 보존됨).
- 기본값:
FALSE
STRIP_OUTER_ARRAY = TRUE | FALSE
- 용도:
데이터 로딩 및 외부 테이블
- 정의:
JSON 파서에 바깥쪽 대괄호(즉,
[ ]
)를 제거하도록 지시하는 부울입니다.- 기본값:
FALSE
STRIP_NULL_VALUES = TRUE | FALSE
- 용도:
데이터 로딩 및 외부 테이블
- 정의:
JSON 파서에
null
값이 포함된 오브젝트 필드 또는 배열 요소를 제거하도록 지시하는 부울입니다. 예를 들어TRUE
로 설정할 경우 다음과 같습니다.이전
이후
[null]
[]
[null,null,3]
[,,3]
{"a":null,"b":null,"c":123}
{"c":123}
{"a":[1,null,2],"b":{"x":null,"y":88}}
{"a":[1,,2],"b":{"y":88}}
- 기본값:
FALSE
REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- 용도:
데이터 로딩 및 외부 테이블
- 정의:
유효하지 않은 UTF-8 문자를 유니코드 대체 문자(
�
)로 대체할지 여부를 지정하는 부울. 이 옵션은 일대일 문자 대체를 수행합니다.- 값:
TRUE
로 설정하면 Snowflake가 잘못된 UTF-8 문자를 유니코드 대체 문자로 바꿉니다.FALSE
로 설정하면 잘못된 UTF-8 문자 인코딩이 감지될 때 로딩 작업에서 오류가 발생합니다.- 기본값:
FALSE
IGNORE_UTF8_ERRORS = TRUE | FALSE
- 용도:
데이터 로딩 및 외부 테이블
- 정의:
UTF-8 인코딩 오류가 오류 조건을 생성하는지 여부를 지정하는 부울입니다. 이는
REPLACE_INVALID_CHARACTERS
의 대체 구문입니다.- 값:
TRUE
로 설정하면 잘못된 UTF-8 시퀀스가 전부 유니코드 문자U+FFFD
(즉, “대체 문자”)로 자동으로 바뀝니다.FALSE
로 설정하면 잘못된 UTF-8 문자 인코딩이 감지될 때 로딩 작업에서 오류가 발생합니다.- 기본값:
FALSE
SKIP_BYTE_ORDER_MARK = TRUE | FALSE
- 용도:
데이터 로딩 전용
- 정의:
데이터 파일에 있는 경우 BOM(바이트 순서 표시)를 건너뛸지 여부를 지정하는 부울입니다. BOM은 데이터 파일의 시작 부분에서 바이트 순서와 인코딩 형식을 정의하는 문자 코드입니다.
FALSE
로 설정하면 Snowflake가 데이터 파일에 있는 모든 BOM을 인식하므로, BOM에서 오류가 발생하거나 테이블의 첫 번째 열에 병합되는 결과가 될 수 있습니다.- 기본값:
TRUE
TYPE = AVRO¶
COMPRESSION = AUTO | GZIP | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
- 용도:
데이터 로딩 전용
- 정의:
데이터를 로딩할 때 데이터 파일에 대한 현재 압축 알고리즘을 지정합니다. Snowflake는 이 옵션을 사용하여 이미 압축된 데이터 파일을 압축한 방식을 감지해 로딩을 위해 파일의 압축 데이터를 추출할 수 있습니다.
데이터를 언로딩할 때 지정된 압축 알고리즘을 사용하여 데이터 파일을 압축합니다.
- 값:
지원되는 값
참고
AUTO
데이터를 로딩할 때 현재 자동으로 감지할 수 없는 Brotli 압축 파일을 제외하고 압축 알고리즘이 자동으로 감지됩니다. 데이터를 언로딩할 때 파일은 기본값인 gzip을 사용하여 자동으로 압축됩니다.
GZIP
BROTLI
Brotli 압축 파일을 로딩/언로딩할 경우 지정해야 합니다.
ZSTD
Zstandard v0.8 이상이 지원됩니다.
DEFLATE
Deflate 압축 파일(zlib 헤더 RFC1950 포함).
RAW_DEFLATE
원시 Deflate 압축 파일(헤더 RFC1951 제외).
NONE
데이터를 로딩할 때 파일이 압축되지 않았음을 나타냅니다. 데이터를 언로딩할 때 언로딩된 파일이 압축되지 않도록 지정합니다.
- 기본값:
AUTO
.
참고
기본 AUTO
옵션으로 파일 및 코덱 압축이 모두 결정되므로 기본 옵션을 사용하는 것이 좋습니다. 압축 옵션 지정은 블록(코덱) 압축이 아닌 파일 압축을 가리킵니다.
TRIM_SPACE = TRUE | FALSE
- 용도:
데이터 로딩 전용
- 정의:
문자열에서 선행 공백과 후행 공백을 제거할지 여부를 지정하는 부울입니다.
예를 들어, 외부 데이터베이스 소프트웨어에서 필드를 따옴표로 묶지만 선행 공백을 삽입하는 경우 Snowflake는 여는 따옴표 문자가 아닌 선행 공백을 필드의 시작으로 읽습니다(즉, 따옴표는 필드 데이터 문자열의 일부로 해석됨). 데이터 로딩 중에 불필요한 공백을 제거하려면 이 옵션을
TRUE
로 설정하십시오.이 파일 형식 옵션은 MATCH_BY_COLUMN_NAME 복사 옵션을 사용하여 Avro 데이터를 별도의 열에 로딩할 때만 다음 작업에 적용됩니다.
- 기본값:
FALSE
REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- 용도:
데이터 로딩 및 외부 테이블
- 정의:
유효하지 않은 UTF-8 문자를 유니코드 대체 문자(
�
)로 대체할지 여부를 지정하는 부울. 이 옵션은 일대일 문자 대체를 수행합니다.- 값:
TRUE
로 설정하면 Snowflake가 잘못된 UTF-8 문자를 유니코드 대체 문자로 바꿉니다.FALSE
로 설정하면 잘못된 UTF-8 문자 인코딩이 감지될 때 로딩 작업에서 오류가 발생합니다.- 기본값:
FALSE
NULL_IF = ( 'string1' [ , 'string2' , ... ] )
- 용도:
데이터 로딩 전용
- 정의:
SQL NULL로 변환하거나 그 반대로 변환하는 데 사용되는 문자열입니다. Snowflake는 데이터 로딩 소스의 이러한 문자열을 SQL NULL로 바꿉니다. 둘 이상의 문자열을 지정하려면 문자열 목록을 괄호로 묶고 쉼표를 사용하여 각각의 값을 구분합니다.
이 파일 형식 옵션은 MATCH_BY_COLUMN_NAME 복사 옵션을 사용하여 Avro 데이터를 별도의 열에 로딩할 때만 다음 작업에 적용됩니다.
Snowflake는 데이터 타입과 관계없이 값의 모든 인스턴스를 NULL로 변환합니다. 예를 들어
2
가 값으로 지정되면2
의 모든 인스턴스가 문자열 또는 숫자로 변환됩니다.예:
NULL_IF = ('\N', 'NULL', 'NUL', '')
이 옵션에는 빈 문자열이 포함될 수 있습니다.
- 기본값:
\\N
(즉,ESCAPE_UNENCLOSED_FIELD
값이\\
인 것으로 가정하는 NULL)
TYPE = ORC¶
TRIM_SPACE = TRUE | FALSE
- 용도:
데이터 로딩 및 외부 테이블
- 정의:
문자열에서 선행 공백과 후행 공백을 제거할지 여부를 지정하는 부울입니다.
예를 들어, 외부 데이터베이스 소프트웨어에서 필드를 따옴표로 묶지만 선행 공백을 삽입하는 경우 Snowflake는 여는 따옴표 문자가 아닌 선행 공백을 필드의 시작으로 읽습니다(즉, 따옴표는 필드 데이터 문자열의 일부로 해석됨). 데이터 로딩 중에 불필요한 공백을 제거하려면 이 옵션을
TRUE
로 설정하십시오.이 파일 형식 옵션은 MATCH_BY_COLUMN_NAME 복사 옵션을 사용하여 Orc 데이터를 별도의 열에 로딩할 때만 다음 작업에 적용됩니다.
- 기본값:
FALSE
REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- 용도:
데이터 로딩 및 외부 테이블
- 정의:
유효하지 않은 UTF-8 문자를 유니코드 대체 문자(
�
)로 대체할지 여부를 지정하는 부울. 이 옵션은 일대일 문자 대체를 수행합니다.- 값:
TRUE
로 설정하면 Snowflake가 잘못된 UTF-8 문자를 유니코드 대체 문자로 바꿉니다.FALSE
로 설정하면 잘못된 UTF-8 문자 인코딩이 감지될 때 로딩 작업에서 오류가 발생합니다.- 기본값:
FALSE
NULL_IF = ( 'string1' [ , 'string2' , ... ] )
- 용도:
데이터 로딩 및 외부 테이블
- 정의:
SQL NULL로 변환하거나 그 반대로 변환하는 데 사용되는 문자열입니다. Snowflake는 데이터 로딩 소스의 이러한 문자열을 SQL NULL로 바꿉니다. 둘 이상의 문자열을 지정하려면 문자열 목록을 괄호로 묶고 쉼표를 사용하여 각각의 값을 구분합니다.
이 파일 형식 옵션은 MATCH_BY_COLUMN_NAME 복사 옵션을 사용하여 Orc 데이터를 별도의 열에 로딩할 때만 다음 작업에 적용됩니다.
Snowflake는 데이터 타입과 관계없이 값의 모든 인스턴스를 NULL로 변환합니다. 예를 들어
2
가 값으로 지정되면2
의 모든 인스턴스가 문자열 또는 숫자로 변환됩니다.예:
NULL_IF = ('\N', 'NULL', 'NUL', '')
이 옵션에는 빈 문자열이 포함될 수 있습니다.
- 기본값:
\\N
(즉,ESCAPE_UNENCLOSED_FIELD
값이\\
인 것으로 가정하는 NULL)
TYPE = PARQUET¶
COMPRESSION = AUTO | LZO | SNAPPY | NONE
- 용도:
데이터 로딩, 데이터 언로딩, 외부 테이블
- 정의:
데이터를 로딩할 때 Parquet 파일의 열에 대한 현재 압축 알고리즘을 지정합니다.
데이터를 언로딩할 때 지정된 압축 알고리즘을 사용하여 데이터 파일을 압축합니다.
- 값:
지원되는 값
참고
AUTO
데이터를 로딩할 때 압축 알고리즘이 자동으로 감지됩니다. Brotli, gzip, Lempel-Ziv-Oberhumer(LZO), LZ4, Snappy 또는 Zstandard v0.8 이상의 압축 알고리즘을 지원합니다. . 데이터를 언로딩할 때 언로딩된 파일은 기본적으로 Snappy 압축 알고리즘을 사용하여 압축됩니다.
LZO
데이터를 언로딩할 때 파일은 기본적으로 Snappy 알고리즘을 사용하여 압축됩니다. 데이터를 LZO 압축 파일로 언로딩하는 경우 이 값을 지정합니다.
SNAPPY
데이터를 언로딩할 때 파일은 기본적으로 Snappy 알고리즘을 사용하여 압축됩니다. 이 값을 선택적으로 지정할 수 있습니다.
NONE
데이터를 로딩할 때 파일이 압축되지 않았음을 나타냅니다. 데이터를 언로딩할 때 언로딩된 파일이 압축되지 않도록 지정합니다.
- 기본값:
AUTO
SNAPPY_COMPRESSION = TRUE | FALSE
- 용도:
데이터 언로딩 전용
지원되는 값
참고
AUTO
업로드된 파일은 기본적으로 Snappy 압축 알고리즘을 사용하여 압축됩니다.
SNAPPY
Snappy 압축 파일을 언로딩하는 경우 지정할 수 있습니다.
NONE
데이터를 로딩할 때 파일이 압축되지 않았음을 나타냅니다. 데이터를 언로딩할 때 언로딩된 파일이 압축되지 않도록 지정합니다.
- 정의:
언로딩된 파일이 SNAPPY 알고리즘을 사용하여 압축되는지 여부를 지정하는 부울입니다.
참고
사용되지 않음.
COMPRESSION = SNAPPY
를 대신 사용하십시오.- 제한 사항:
데이터 언로딩 작업용으로만 지원됩니다.
- 기본값:
TRUE
BINARY_AS_TEXT = TRUE | FALSE
- 용도:
데이터 로딩 및 외부 테이블
- 정의:
정의된 논리 데이터 타입이 없는 열을 UTF-8 텍스트로 해석할지 여부를 지정하는 부울입니다.
FALSE
로 설정하면 Snowflake가 이러한 열을 이진 데이터로 해석합니다.- 기본값:
TRUE
참고
잠재적인 변환 문제를 방지하도록 BINARY_AS_TEXT를 FALSE로 설정하는 것이 좋습니다.
TRIM_SPACE = TRUE | FALSE
- 용도:
데이터 로딩 전용
- 정의:
문자열에서 선행 공백과 후행 공백을 제거할지 여부를 지정하는 부울입니다.
예를 들어, 외부 데이터베이스 소프트웨어에서 필드를 따옴표로 묶지만 선행 공백을 삽입하는 경우 Snowflake는 여는 따옴표 문자가 아닌 선행 공백을 필드의 시작으로 읽습니다(즉, 따옴표는 필드 데이터 문자열의 일부로 해석됨). 데이터 로딩 중에 불필요한 공백을 제거하려면 이 옵션을
TRUE
로 설정하십시오.이 파일 형식 옵션은 MATCH_BY_COLUMN_NAME 복사 옵션을 사용하여 Parquet 데이터를 별도의 열에 로딩할 때만 다음 작업에 적용됩니다.
- 기본값:
FALSE
USE_LOGICAL_TYPE = TRUE | FALSE
- 용도:
데이터 로딩, 스테이징된 파일의 데이터 쿼리, 스키마 감지.
- 정의:
Parquet 논리 유형을 사용할지 여부를 지정하는 부울입니다. Snowflake는 이 파일 형식 옵션으로 데이터 로드 중에 Parquet 논리 유형을 해석할 수 있습니다. 자세한 내용은 Parquet 논리 유형 정의 를 참조하십시오. Parquet 논리 유형을 활성화하려면 새 파일 형식 옵션을 생성할 때 USE_LOGICAL_TYPE을 TRUE로 설정하십시오.
- 제한 사항:
데이터 언로딩에는 지원되지 않습니다.
USE_VECTORIZED_SCANNER = TRUE | FALSE
- 용도:
스테이징된 파일에서의 데이터 로딩 및 데이터 쿼리
- 정의:
Parquet 파일을 로드할 때 벡터화된 스캐너를 사용할지 여부를 지정하는 부울입니다.
- 기본값:
FALSE
. 향후 BCR에서 기본값은TRUE
입니다.
벡터화된 스캐너를 사용하면 Parquet 파일의 열 형식에 적합하기 때문에 Parquet 파일 로딩 대기 시간을 크게 줄일 수 있습니다. 스캐너는 선택한 열의 하위 집합 등 Parquet 파일에서 관련 섹션만 메모리에 다운로드합니다.
다음 조건이 충족되는 경우에만 벡터화된 스캐너를 활성화할 수 있습니다.
ON_ERROR
옵션은ABORT_STATEMENT
또는SKIP_FILE
로 설정해야 합니다.다른 값
CONTINUE
,SKIP_FILE_num
,'SKIP_FILE_num%'
는 지원되지 않습니다.
USE_VECTORIZED_SCANNER
가TRUE
로 설정된 경우 벡터화된 스캐너는 다음과 같은 동작을 수행합니다.BINARY_AS_TEXT
옵션은 실제 설정된 값에 관계없이 항상FALSE
로,USE_LOGICAL_TYPE
옵션은 항상TRUE
로 취급됩니다.벡터화된 스캐너는 Parquet 맵 유형을 지원합니다. 맵 유형 스캔의 출력은 다음과 같습니다.
"my_map": { "k1": "v1", "k2": "v2" }
다음 예제에서 볼 수 있듯이 벡터화된 스캐너는 출력에
NULL
값을 표시합니다."person": { "name": "Adam", "nickname": null, "age": 34, "phone_numbers": [ "1234567890", "0987654321", null, "6781234590" ] }
벡터화된 스캐너는 시간과 타임스탬프를 다음과 같이 처리합니다.
Parquet
Snowflake 벡터화된 스캐너
TimeType(isAdjustedToUtc=True/False, 단위=MILLIS/MICROS/NANOS)
TIME
TimestampType(isAdjustedToUtc=True, 단위=MILLIS/MICROS/NANOS)
TIMESTAMP_LTZ
TimestampType(isAdjustedToUtc=False, 단위=MILLIS/MICROS/NANOS)
TIMESTAMP_NTZ
INT96
TIMESTAMP_LTZ
USE_VECTORIZED_SCANNER
가FALSE
로 설정된 경우 스캐너의 동작은 다음과 같습니다.이 옵션은 Parquet 맵을 지원하지 않습니다. 맵 유형 스캔의 출력은 다음과 같습니다.
"my_map": { "key_value": [ { "key": "k1", "value": "v1" }, { "key": "k2", "value": "v2" } ] }
다음 예제에서 볼 수 있듯이 이 옵션은 스캔 출력에
NULL
값을 명시적으로 표시하지 않습니다."person": { "name": "Adam", "age": 34 "phone_numbers": [ "1234567890", "0987654321", "6781234590" ] }
이 옵션은 시간과 타임스탬프를 다음과 같이 처리합니다.
Parquet
USE_LOGICAL_TYPE = TRUE인 경우
USE_LOGICAL_TYPE = FALSE인 경우
TimeType(isAdjustedToUtc=True/False, 단위=MILLIS/MICROS)
TIME
TIME(ConvertedType이 있는 경우)
INTEGER(ConvertedType이 없는 경우)
TimeType(isAdjustedToUtc=True/False, 단위=NANOS)
TIME
INTEGER
TimestampType(isAdjustedToUtc=True, 단위=MILLIS/MICROS)
TIMESTAMP_LTZ
TIMESTAMP_NTZ
TimestampType(isAdjustedToUtc=True, 단위=NANOS)
TIMESTAMP_LTZ
INTEGER
TimestampType(isAdjustedToUtc=False, 단위=MILLIS/MICROS)
TIMESTAMP_NTZ
TIMESTAMP_LTZ(ConvertedType이 있는 경우)
INTEGER(ConvertedType이 없는 경우)
TimestampType(isAdjustedToUtc=False, 단위=NANOS)
TIMESTAMP_NTZ
INTEGER
INT96
TIMESTAMP_NTZ
TIMESTAMP_NTZ
REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- 용도:
데이터 로딩 및 외부 테이블
- 정의:
유효하지 않은 UTF-8 문자를 유니코드 대체 문자(
�
)로 대체할지 여부를 지정하는 부울. 이 옵션은 일대일 문자 대체를 수행합니다.- 값:
TRUE
로 설정하면 Snowflake가 잘못된 UTF-8 문자를 유니코드 대체 문자로 바꿉니다.FALSE
로 설정하면 잘못된 UTF-8 문자 인코딩이 감지될 때 로딩 작업에서 오류가 발생합니다.- 기본값:
FALSE
NULL_IF = ( 'string1' [ , 'string2' , ... ] )
- 용도:
데이터 로딩 전용
- 정의:
SQL NULL로 변환하거나 그 반대로 변환하는 데 사용되는 문자열입니다. Snowflake는 데이터 로딩 소스의 이러한 문자열을 SQL NULL로 바꿉니다. 둘 이상의 문자열을 지정하려면 문자열 목록을 괄호로 묶고 쉼표를 사용하여 각각의 값을 구분합니다.
이 파일 형식 옵션은 MATCH_BY_COLUMN_NAME 복사 옵션을 사용하여 Parquet 데이터를 별도의 열에 로딩할 때만 다음 작업에 적용됩니다.
Snowflake는 데이터 타입과 관계없이 값의 모든 인스턴스를 NULL로 변환합니다. 예를 들어
2
가 값으로 지정되면2
의 모든 인스턴스가 문자열 또는 숫자로 변환됩니다.예:
NULL_IF = ('\N', 'NULL', 'NUL', '')
이 옵션에는 빈 문자열이 포함될 수 있습니다.
- 기본값:
\\N
(즉,ESCAPE_UNENCLOSED_FIELD
값이\\
인 것으로 가정하는 NULL)
TYPE = XML¶
COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
- 용도:
데이터 로딩 전용
- 정의:
데이터를 로딩할 때 데이터 파일에 대한 현재 압축 알고리즘을 지정합니다. Snowflake는 이 옵션을 사용하여 이미 압축된 데이터 파일을 압축한 방식을 감지해 로딩을 위해 파일의 압축 데이터를 추출할 수 있습니다.
데이터를 언로딩할 때 지정된 압축 알고리즘을 사용하여 데이터 파일을 압축합니다.
- 값:
지원되는 값
참고
AUTO
데이터를 로딩할 때 현재 자동으로 감지할 수 없는 Brotli 압축 파일을 제외하고 압축 알고리즘이 자동으로 감지됩니다. 데이터를 언로딩할 때 파일은 기본값인 gzip을 사용하여 자동으로 압축됩니다.
GZIP
BZ2
BROTLI
Brotli 압축 파일을 로딩/언로딩할 경우 지정해야 합니다.
ZSTD
Zstandard v0.8 이상이 지원됩니다.
DEFLATE
Deflate 압축 파일(zlib 헤더 RFC1950 포함).
RAW_DEFLATE
원시 Deflate 압축 파일(헤더 RFC1951 제외).
NONE
데이터를 로딩할 때 파일이 압축되지 않았음을 나타냅니다. 데이터를 언로딩할 때 언로딩된 파일이 압축되지 않도록 지정합니다.
- 기본값:
AUTO
IGNORE_UTF8_ERRORS = TRUE | FALSE
- 용도:
데이터 로딩 및 외부 테이블
- 정의:
UTF-8 인코딩 오류가 오류 조건을 생성하는지 여부를 지정하는 부울입니다. 이는
REPLACE_INVALID_CHARACTERS
의 대체 구문입니다.- 값:
TRUE
로 설정하면 잘못된 UTF-8 시퀀스가 전부 유니코드 문자U+FFFD
(즉, “대체 문자”)로 자동으로 바뀝니다.FALSE
로 설정하면 잘못된 UTF-8 문자 인코딩이 감지될 때 로딩 작업에서 오류가 발생합니다.- 기본값:
FALSE
PRESERVE_SPACE = TRUE | FALSE
- 용도:
데이터 로딩 전용
- 정의:
XML 파서가 요소 콘텐츠의 선행 및 후행 공백을 보존할지 여부를 지정하는 부울입니다.
- 기본값:
FALSE
STRIP_OUTER_ELEMENT = TRUE | FALSE
- 용도:
데이터 로딩 전용
- 정의:
XML 파서가 외부 XML 요소를 제거하여 2차 수준 요소를 별개의 문서로 노출할지 여부를 지정하는 부울입니다.
- 기본값:
FALSE
DISABLE_SNOWFLAKE_DATA = TRUE | FALSE
- 용도:
데이터 로딩 전용
- 정의:
XML 파서가 Snowflake 반정형 데이터 태그를 인식하지 못하게 할지 여부를 지정하는 부울입니다.
- 기본값:
FALSE
DISABLE_AUTO_CONVERT = TRUE | FALSE
- 용도:
데이터 로딩 전용
- 정의:
XML 파서가 숫자 값과 부울 값을 텍스트에서 기본 표현으로 자동 변환하지 못하게 할지 여부를 지정하는 부울입니다.
- 기본값:
FALSE
REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- 용도:
데이터 로딩 및 외부 테이블
- 정의:
유효하지 않은 UTF-8 문자를 유니코드 대체 문자(
�
)로 대체할지 여부를 지정하는 부울. 이 옵션은 일대일 문자 대체를 수행합니다.- 값:
TRUE
로 설정하면 Snowflake가 잘못된 UTF-8 문자를 유니코드 대체 문자로 바꿉니다.FALSE
로 설정하면 잘못된 UTF-8 문자 인코딩이 감지될 때 로딩 작업에서 오류가 발생합니다.- 기본값:
FALSE
SKIP_BYTE_ORDER_MARK = TRUE | FALSE
- 용도:
데이터 로딩 전용
- 정의:
입력 파일에 있는 모든 BOM(바이트 순서 표시)을 건너뛸지 여부를 지정하는 부울입니다. BOM은 데이터 파일의 시작 부분에서 바이트 순서와 인코딩 형식을 정의하는 문자 코드입니다.
FALSE
로 설정하면 Snowflake가 데이터 파일에 있는 모든 BOM을 인식하므로, BOM에서 오류가 발생하거나 테이블의 첫 번째 열에 병합되는 결과가 될 수 있습니다.- 기본값:
TRUE
액세스 제어 요구 사항¶
이 SQL 명령을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.
권한 |
오브젝트 |
참고 |
---|---|---|
OWNERSHIP |
스테이지 |
스테이지 속성을 변경하고 ALTER STAGE … SET DIRECTORY를 사용하여 스테이지의 디렉터리 테이블을 활성화 또는 비활성화하는 데 필요합니다. OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). |
WRITE |
스테이지 |
ALTER STAGE … REFRESH를 사용하여 메타데이터를 새로 고쳐야 합니다. |
스키마의 모든 오브젝트에 대해 작업하려면 상위 데이터베이스 및 스키마에 대한 USAGE 권한도 필요합니다.
지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.
보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.
사용법 노트¶
메타데이터 관련:
주의
고객은 Snowflake 서비스를 사용할 때 개인 데이터(사용자 오브젝트 제외), 민감한 데이터, 수출 통제 대상 데이터 또는 기타 규제 데이터가 메타데이터로 입력되지 않도록 해야 합니다. 자세한 내용은 Snowflake의 메타데이터 필드 섹션을 참조하십시오.
예¶
이름을 my_int_stage
에서 new_int_stage
로 바꾸기:
ALTER STAGE my_int_stage RENAME TO new_int_stage;
files
폴더에서 new
로 명명된 하위 폴더를 참조하는 URL을 변경하려면 (CREATE STAGE 예제에서 만든) my_ext_stage
를 변경하십시오. 이 스테이지를 참조하는 COPY INTO <테이블> 명령을 실행하여 레코드에 데이터 오류가 발생하면 파일을 건너뜁니다. 다른 모든 복사 옵션은 기본값으로 설정됩니다.
S3 버킷이 중국의 리전에 있는 경우 URL 매개 변수에 s3china://
프로토콜을 사용합니다.
ALTER STAGE my_ext_stage SET URL='s3://loading/files/new/' COPY_OPTIONS = (ON_ERROR='skip_file');
my_ext_stage
변경으로 제공된 자격 증명을 myint
로 명명된 저장소 통합에 대한 참조로 바꾸기:
ALTER STAGE my_ext_stage SET STORAGE_INTEGRATION = myint;
my_ext_stage
변경으로 스테이지에 대한 새 액세스 키 ID와 시크릿 액세스 키 지정:
ALTER STAGE my_ext_stage SET CREDENTIALS=(AWS_KEY_ID='d4c3b2a1' AWS_SECRET_KEY='z9y8x7w6');(위의 예에서 사용한 자격 증명 값은 설명을 위한 예시일 뿐임)
my_ext_stage3
변경으로 스테이지에 대한 암호화 유형을 AWS_SSE_S3
서버 측 암호화로 변경:
ALTER STAGE my_ext_stage3 SET ENCRYPTION=(TYPE='AWS_SSE_S3');
디렉터리 테이블 예¶
mystage
라는 기존 스테이지에 디렉터리 테이블을 추가합니다.
ALTER STAGE mystage SET DIRECTORY = ( ENABLE = TRUE );
다음과 같이 mystage
로 명명된 스테이지에서 디렉터리 테이블 메타데이터를 수동으로 새로 고칩니다.
ALTER STAGE mystage REFRESH;
+-------------------------+----------------+-------------------------------+
| file | status | description |
|-------------------------+----------------+-------------------------------|
| data/json/myfile.json | REGISTERED_NEW | File registered successfully. |
+-------------------------+----------------+-------------------------------+
mystage
라는 스테이지의 data
경로에 있는 파일에 대한 디렉터리 테이블 메타데이터를 수동으로 새로 고칩니다.
ALTER STAGE mystage REFRESH SUBPATH = 'data';