적용 대상:
Databricks SQL
Databricks Runtime 18 LTS 이상으로 표시
Important
이 기능은 베타 버전으로 제공됩니다. 작업 영역 관리자는 미리 보기 페이지에서 이 기능에 대한 액세스를 제어할 수 있습니다. Azure Databricks 미리 보기 관리를 참조하세요.
파일을 목적지 경로로 복사하고 복사된 파일에 대한 참조를 FILE 반환합니다. Unity 카탈로그 관리 저장소로 파일을 복사하는 것은 생략 destination 하세요. 이 저장소는 참조를 FILE EXTERNAL 참조로 FILE MANAGED 변환합니다.
Syntax
copy_file(file => file
[, destination => destination ]
[, if_file_exists_mode => mode ])
논증은 위치별로 또는 이름으로 전달할 수 있습니다. 인수명을 이름으로 전달한 후에는 그 이후의 모든 인수도 이름으로 전달되어야 합니다. 자세한 내용은 이름 있는 매개변수 호출을 참조하세요.
Arguments
-
file:FILE복사할 값입니다. -
destination: 전체 목적지 파일 경로가 포함된 선택STRING사항으로, 단순한 디렉터리가 아닙니다. 생략 시 파일은 Unity Catalog가 관리하는 저장소로 복사되어 참조를FILE EXTERNAL참조로FILE MANAGED변환합니다. -
if_file_exists_mode: 목적지 경로에 파일이 이미 존재할 때 동작을 설정하는 선택적STRING기능입니다. 논증을destination사용할 때만 적용됩니다. 허용된 값(대문자 구분 없음)은 다음과 같습니다:-
'error': 오류가 발생한다. 기본값입니다. -
'overwrite': 기존 파일을 덮어씁니다. -
'skip': 복사를 건너뛰고 기존 파일에 대한 참조를FILE반환합니다.
-
Returns
FILE 복사된 파일을 참조하는 값입니다.
Notes
- 생략하면
destination참조FILE MANAGED를FILE EXTERNAL로 변환합니다. Azure Databricks는 열에FILE MANAGED값을 삽입FILE EXTERNAL할 때 이 변환을 자동으로 적용합니다. - 목적지 경로에 이미 파일이 존재하면, Azure Databricks는 기본적으로
if_file_exists_modeoverwriteskip오류를 발생시킵니다. - 소스 파일이 존재하지 않으면 Azure Databricks가 오류를 발생시킵니다. 오류를 발생시키지 않고 반환
NULL하려면 함수를 사용try_copy_file하세요.
일반적인 오류 조건
COPY_FILE_ERROR.FILE_NOT_EXISTSCOPY_FILE_ERROR.FILE_ALREADY_EXISTSCOPY_FILE_AUTHORIZATION_ERROR.READ_UNAUTHORIZEDCOPY_FILE_AUTHORIZATION_ERROR.WRITE_UNAUTHORIZED
자세한 내용은 Azure Databricks의 Error conditions 문서를 참조하세요.
예시
한 볼륨에서 다른 볼륨으로 파일을 복사하려면:
SELECT copy_file(
to_file('/Volumes/source/data/input.csv'),
destination => '/Volumes/target/data/output.csv'
);
각 행 파일 이름을 사용해 대상 볼륨에 파일을 복사하려면:
SELECT copy_file(
source_file,
destination => '/Volumes/my_catalog/my_schema/my_volume/processed/' || file_name,
if_file_exists_mode => 'skip'
)
FROM staging_files;
이미 파일이 존재하는 경우 목적지를 덮어쓰려면:
SELECT copy_file(
to_file('/Volumes/source/reports/report.pdf'),
destination => '/Volumes/archive/reports/report.pdf',
if_file_exists_mode => 'overwrite'
);
소스 파일이 존재 copy_file 하지 않으면 오류가 발생합니다:
SELECT copy_file(deleted_file, destination => '/Volumes/archive/reports/report.pdf');
Error: COPY_FILE_ERROR.FILE_NOT_EXISTS