copy_file 함수

적용 대상:yes 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 MANAGEDFILE EXTERNAL 로 변환합니다. Azure Databricks는 열에 FILE MANAGED 값을 삽입 FILE EXTERNAL 할 때 이 변환을 자동으로 적용합니다.
  • 목적지 경로에 이미 파일이 존재하면, Azure Databricks는 기본적으로 if_file_exists_modeoverwriteskip오류를 발생시킵니다.
  • 소스 파일이 존재하지 않으면 Azure Databricks가 오류를 발생시킵니다. 오류를 발생시키지 않고 반환 NULL 하려면 함수를 사용try_copy_file하세요.

일반적인 오류 조건

  • COPY_FILE_ERROR.FILE_NOT_EXISTS
  • COPY_FILE_ERROR.FILE_ALREADY_EXISTS
  • COPY_FILE_AUTHORIZATION_ERROR.READ_UNAUTHORIZED
  • COPY_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