이 페이지에서는 Databricks ODBC 드라이버를 사용하여 Unity 카탈로그 볼륨에서 파일을 업로드, 다운로드 및 삭제하는 방법을 설명합니다.
요구 사항
- Databricks ODBC 드라이버 버전 2.8.2 이상
- 기본 쿼리 모드를 사용하도록 설정(기본값). 사용하지 않도록 설정된 경우, 연결 문자열에
UseNativeQuery=1또는UseNativeQuery=2을 추가하십시오.
인증 설정이 포함된 전체 Python 예제는 Azure Databricks에 Python 및 pyodbc 연결을 참조하세요.
파일 업로드하기
파일을 업로드하려면 업로드할 파일의 경로를 사용하여 연결 문자열에 속성을 추가 StagingAllowedLocalPaths 합니다. 여러 원본 위치의 경우 쉼표로 구분된 목록(예: /tmp/,/usr/tmp/)을 사용합니다.
중요합니다
사용자가 ODBC URL(예: BI 도구 또는 개발자 서비스)을 제어하는 다중 테넌트 환경에서 샌드박스 위치 또는 존재하지 않는 경로로 설정합니다 StagingAllowedLocalPaths . 이렇게 하면 사용자가 임의의 파일을 작성하고 서비스의 내부 배포를 방해하지 않습니다.
기존 파일을 덮어쓰려면 OVERWRITE를 구문에 추가합니다.
conn_string = "".join([
"DRIVER=", os.getenv("ODBC_DRIVER", "/Library/simba/spark/lib/libsparkodbc_sbu.dylib"),
";Host=", os.getenv("ODBC_HOST_NAME", "<<HOST_NAME>>"),
";PORT=443",
";HTTPPath=", os.getenv("ODBC_HTTP_PATH", "/sql/1.0/endpoints/1234567890"),
";AuthMech=11",
";SSL=1",
";ThriftTransport=2",
";SparkServerType=3",
";Auth_Flow=0",
";Auth_AccessToken=", os.getenv("API_TOKEN", "<<NO_ACCESS_TOKEN_IS_SET>>"),
";StagingAllowedLocalPaths=", "/tmp"),
os.getenv("ODBC_OPTIONS", ""),
])
conn = pyodbc.connect(conn_string, autocommit=True)
cursor = conn.cursor()
cursor.execute("PUT '" +
"/tmp/my-data.csv" +
"' INTO '" +
"/Volumes/main/default/my-volume/my-data.csv" +
"' OVERWRITE")
파일 다운로드
볼륨에서 로컬 경로로 파일을 다운로드하는 데 사용합니다 GET .
conn = pyodbc.connect(conn_string, autocommit=True)
cursor = conn.cursor()
cursor.execute("GET '" +
"/Volumes/main/default/my-volume/my-data.csv" +
"' TO '" +
"/tmp/my-downloaded-data.csv" +
"'")
파일 삭제하기
볼륨에서 파일을 삭제하는 데 사용합니다 REMOVE .
conn = pyodbc.connect(conn_string, autocommit=True)
cursor = conn.cursor()
cursor.execute("REMOVE '" +
"/Volumes/main/default/my-volume/my-data.csv" +
"'")