서버리스 컴퓨팅에서 번들 커넥터를 사용하여 외부 데이터 원본에 쓸 때 커넥터 옵션의 하위 집합만 지원됩니다. 다음 표에는 커넥터당 지원되는 옵션이 나와 있습니다.
설치 지침 및 예제는 Spark 데이터 원본을 참조하세요.
PostgreSQL
서버리스 컴퓨팅에서 PostgreSQL에 쓸 때 지원되는 옵션은 다음과 같습니다.
| Option | 설명 |
|---|---|
host |
PostgreSQL 서버의 호스트 이름입니다. |
port |
포트 번호입니다. 기본값: 5432. |
database |
연결할 데이터베이스의 이름입니다. |
connectTimeout |
연결을 기다리는 최대 시간(초)입니다.
0 는 시간 제한을 사용하지 않도록 설정합니다. |
user |
데이터베이스 사용자 이름입니다. |
password |
데이터베이스 암호입니다. |
dbtable |
대상 테이블 이름입니다. 스키마로 한정된 이름(예: myschema.mytable)을 지원합니다. |
batchsize |
일괄 처리당 삽입할 행 수입니다. 기본값: 1000. |
numPartitions |
병렬 쓰기 작업을 위한 Spark 파티션 수입니다. |
queryTimeout |
쿼리가 완료되기를 기다리는 최대 시간(초)입니다.
0 는 시간 제한을 사용하지 않도록 설정합니다. |
isolationLevel |
트랜잭션 격리 수준: NONE, READ_COMMITTED, READ_UNCOMMITTED또는 REPEATABLE_READSERIALIZABLE. 기본값: READ_UNCOMMITTED. |
truncate |
이면 true대상 테이블을 삭제하고 다시 만드는 대신 모드에서 overwrite 자른다. 기본값: false. |
cascadeTruncate |
이 경우 true잘림을 대상 테이블에 대한 외래 키 참조가 있는 테이블로 연계합니다. 기본값: false. |
SQL 서버
서버리스 컴퓨팅에서 SQL Server 쓸 때 지원되는 옵션은 다음과 같습니다.
| Option | 설명 |
|---|---|
host |
SQL Server 인스턴스의 호스트 이름입니다. |
port |
포트 번호입니다. 기본값: 1433. |
database |
연결할 데이터베이스의 이름입니다. |
connectionTimeout |
연결을 기다리는 최대 시간(초)입니다.
0 는 시간 제한을 사용하지 않도록 설정합니다. |
encrypt |
이 경우 trueTLS를 사용하여 클라이언트와 서버 간에 전송되는 모든 데이터를 암호화합니다. 기본값: false. |
trustServerCertificate |
이면 true유효성 검사 없이 서버의 TLS 인증서를 신뢰합니다. 개발 환경에만 해당합니다. 기본값: false. |
debug |
이면 true커넥터에 대한 자세한 디버그 로깅을 사용하도록 설정합니다. 기본값: false. |
user |
데이터베이스 사용자 이름입니다. |
password |
데이터베이스 암호입니다. |
authentication |
인증 유형입니다. 지원되는 값: SqlPassword, ActiveDirectoryPassword, ActiveDirectoryMSI. |
dbtable |
대상 테이블 이름입니다. 스키마로 한정된 이름(예: myschema.mytable)을 지원합니다. |
batchsize |
일괄 처리당 삽입할 행 수입니다. 기본값: 1000. |
numPartitions |
병렬 쓰기 작업을 위한 Spark 파티션 수입니다. |
queryTimeout |
쿼리가 완료되기를 기다리는 최대 시간(초)입니다.
0 는 시간 제한을 사용하지 않도록 설정합니다. |
isolationLevel |
트랜잭션 격리 수준: NONE, READ_COMMITTED, READ_UNCOMMITTED또는 REPEATABLE_READSERIALIZABLE. 기본값: READ_UNCOMMITTED. |
truncate |
이면 true대상 테이블을 삭제하고 다시 만드는 대신 모드에서 overwrite 자른다. 기본값: false. |
MySQL
서버리스 컴퓨팅에서 MySQL에 쓸 때 지원되는 옵션은 다음과 같습니다.
| Option | 설명 |
|---|---|
host |
MySQL 서버의 호스트 이름입니다. |
port |
포트 번호입니다. 기본값: 3306. |
database |
연결할 데이터베이스의 이름입니다. |
connectionTimeout |
연결을 기다리는 최대 시간(초)입니다.
0 는 시간 제한을 사용하지 않도록 설정합니다. |
requireSSL |
이면 true서버에 대한 SSL 암호화 연결이 필요합니다. 기본값: false. |
useSSL |
이면 true서버에서 지원되는 경우 연결에 SSL을 사용하도록 설정합니다. 기본값: false. |
user |
데이터베이스 사용자 이름입니다. |
password |
데이터베이스 암호입니다. |
dbtable |
대상 테이블 이름입니다. 스키마로 한정된 이름(예: myschema.mytable)을 지원합니다. |
batchsize |
일괄 처리당 삽입할 행 수입니다. 기본값: 1000. |
numPartitions |
병렬 쓰기 작업을 위한 Spark 파티션 수입니다. |
queryTimeout |
쿼리가 완료되기를 기다리는 최대 시간(초)입니다.
0 는 시간 제한을 사용하지 않도록 설정합니다. |
isolationLevel |
트랜잭션 격리 수준: NONE, READ_COMMITTED, READ_UNCOMMITTED또는 REPEATABLE_READSERIALIZABLE. 기본값: READ_UNCOMMITTED. |
truncate |
이면 true대상 테이블을 삭제하고 다시 만드는 대신 모드에서 overwrite 자른다. 기본값: false. |
cascadeTruncate |
이 경우 true잘림을 대상 테이블에 대한 외래 키 참조가 있는 테이블로 연계합니다. 기본값: false. |
Snowflake
다음 섹션에서는 함수별로 구성된 Snowflake 커넥터에 대해 지원되는 옵션을 나열합니다.
Connection
다음 옵션은 Snowflake에 대한 연결을 구성하고 세션 동작을 제어합니다.
| Option | 설명 |
|---|---|
host |
Snowflake 계정 호스트 이름(예: <account>.snowflakecomputing.com). |
port |
포트 번호입니다. 기본값: 443. |
sfaccount |
Snowflake 계정 식별자입니다. |
sfauthenticator |
인증 방법: snowflake (암호), oauth (토큰) 또는 snowflake_jwt (키 쌍). 기본값: snowflake. |
networktimeout |
네트워크 작업의 시간 제한(초)입니다. |
sftimezone |
타임스탬프 작업(예 America/New_York: )의 표준 시간대입니다. |
client_session_keep_alive |
이 경우 true장기 실행 작업 중 세션 시간 제한을 방지하기 위해 유지 신호를 보냅니다. 기본값: false. |
ocspfailopen |
OCSP 인증서 유효성 검사를 사용할 수 없는 경우 연결을 계속 진행하도록 허용하는 경우 true(장애 조치(fail-open) 모드). 기본값: true. |
Authentication
다음 옵션은 에 구성된 인증 방법에 대한 자격 증명을 sfauthenticator제공합니다. Snowflake 단계가 클라우드 스토리지를 통해 데이터를 쓰는 경우 스테이징 자격 증명(temporary_aws_*, awsaccesskey, temporary_azure_sas_token)이 필요합니다.
| Option | 설명 |
|---|---|
sfuser |
Snowflake 사용자 이름입니다. |
sfpassword |
Snowflake 암호입니다. 이 경우 sfauthenticatorsnowflake사용됩니다. |
sfToken |
OAuth 액세스 토큰입니다. 이 경우 sfauthenticatoroauth사용됩니다. |
pem_private_key |
키 쌍 인증을 위한 PEM 형식의 프라이빗 키입니다. 이 경우 sfauthenticatorsnowflake_jwt사용됩니다. |
temporary_aws_access_key_id |
S3 준비에 대한 임시 AWS 액세스 키 ID입니다. 수명이 짧은 자격 증명을 사용할 때 선호 awsaccesskey 됩니다. |
temporary_aws_secret_access_key |
S3 준비에 대한 임시 AWS 비밀 액세스 키입니다. |
temporary_aws_session_token |
S3 준비에 대한 임시 AWS 세션 토큰입니다. |
temporary_azure_sas_token |
Azure Blob Storage 스테이징에 대한 임시 Azure SAS 토큰입니다. |
awsaccesskey |
S3 준비에 대한 AWS 액세스 키입니다. |
awssecretkey |
S3 준비에 대한 AWS 비밀 키입니다. |
목표/타겟
다음 옵션은 Snowflake 데이터베이스, 스키마, 웨어하우스 및 쓸 테이블을 지정합니다.
| Option | 설명 |
|---|---|
sfdatabase |
Snowflake 데이터베이스 이름입니다. |
sfschema |
Snowflake 스키마 이름입니다. |
sfwarehouse |
쿼리 실행에 사용되는 Snowflake 가상 웨어하우스입니다. |
sfrole |
세션에 대한 눈송이 역할입니다. |
dbtable |
대상 테이블 이름입니다. |
쓰기 동작 방식
다음 옵션은 대상 Snowflake 테이블에 데이터를 쓰는 방법을 제어합니다.
| Option | 설명 |
|---|---|
column_mapping |
DataFrame 열이 Snowflake 테이블 열과 일치하는 방식( name 열 이름별) 또는 position 열 순서별)입니다. 기본값: name. |
column_mismatch_behavior |
DataFrame 및 테이블 열이 정렬되지 않는 경우 동작: error 또는 ignore. 기본값: error. |
truncate_table |
이면 true쓰기 전에 대상 테이블을 자른다. 기본값: false. |
usestagingtable |
이 경우 true대상으로 교환하기 전에 임시 테이블에 데이터를 스테이징하여 원자성 쓰기를 사용하도록 설정합니다. 기본값: true. |
internal_execute_query_in_sync_mode |
이면 trueSnowflake 쿼리를 동기적으로 실행합니다. 기본값: false. |
autopushdown |
이 경우 true실행을 위해 필터 및 집계 작업을 Snowflake로 푸시합니다. 기본값: true. |
Redshift
다음 섹션에서는 함수별로 구성된 Redshift 커넥터에 대해 지원되는 옵션을 나열합니다.
Connection
다음 옵션은 Redshift 클러스터에 대한 연결을 구성합니다.
| Option | 설명 |
|---|---|
host |
Redshift 클러스터 엔드포인트 호스트 이름입니다. |
port |
포트 번호입니다. 기본값: 5439. |
database |
Redshift 데이터베이스 이름입니다. |
connectionTimeout |
연결을 기다리는 최대 시간(초)입니다. |
Authentication
다음 옵션은 Redshift 및 Redshift가 쓰기 작업 중에 사용하는 S3 준비 위치에 대한 자격 증명을 구성합니다.
| Option | 설명 |
|---|---|
user |
Redshift 사용자 이름입니다. |
password |
Redshift 암호입니다. |
aws_iam_role |
Redshift가 스테이징 데이터를 위해 S3에 액세스하는 데 사용하는 IAM 역할의 ARN입니다. |
temporary_aws_access_key_id |
S3 준비에 대한 임시 AWS 액세스 키 ID입니다. 수명이 긴 자격 증명보다 선호됩니다. |
temporary_aws_secret_access_key |
S3 준비에 대한 임시 AWS 비밀 액세스 키입니다. |
temporary_aws_session_token |
S3 준비에 대한 임시 AWS 세션 토큰입니다. |
forward_spark_s3_credentials |
이 경우 true스테이징을 위해 Spark의 S3 자격 증명을 Redshift에 전달합니다. Spark와 Redshift가 동일한 S3 자격 증명을 공유하는 경우에만 사용합니다. 기본값: false. |
쓰기 동작 방식
다음 옵션은 배포, 정렬 키 및 스테이징 형식을 포함하여 데이터가 대상 Redshift 테이블에 기록되는 방식을 제어합니다.
| Option | 설명 |
|---|---|
dbtable |
대상 테이블 이름입니다. 스키마로 한정된 이름(예: myschema.mytable)을 지원합니다. |
batchsize |
일괄 삽입당 행 수입니다. 기본값: 1000. |
numPartitions |
병렬 쓰기 작업을 위한 Spark 파티션 수입니다. |
queryTimeout |
쿼리가 완료되기를 기다리는 최대 시간(초)입니다. |
isolationLevel |
트랜잭션 격리 수준: NONE, READ_COMMITTED, READ_UNCOMMITTED또는 REPEATABLE_READSERIALIZABLE. 기본값: READ_UNCOMMITTED. |
diststyle |
Redshift 배포 스타일: EVEN, KEY또는 ALL. |
distkey |
배포 키로 사용할 열입니다.
diststyle이 KEY인 경우 필요합니다. |
sortkeyspec |
Redshift 테이블에 대한 정렬 키 사양입니다(예: SORTKEY(col1, col2)). |
csvnullstring |
값을 나타내는 NULL 스테이징 CSV 파일로 작성된 문자열입니다. 기본값: 빈 문자열입니다. |
tempformat |
준비 파일 형식: CSV 또는 AVRO. 기본값: CSV. |
truncate |
이면 true대상 테이블을 삭제하고 다시 만드는 대신 모드에서 overwrite 자른다. 기본값: false. |
서버리스 컴퓨팅에서 PostgreSQL에 쓰기
이 예제에서는 모드를 사용하고 append Databricks 비밀 범위에서 자격 증명을 검색합니다.
df.write \
.format("postgresql") \
.option("host", dbutils.secrets.get(scope="<scope>", key="<host>")) \
.option("port", "<port>") \
.option("database", "<database-name>") \
.option("dbtable", "<table-name>") \
.option("user", dbutils.secrets.get(scope="<scope>", key="<user>")) \
.option("password", dbutils.secrets.get(scope="<scope>", key="<password>")) \
.mode("append") \
.save()
다음 단계
- Spark 데이터 원본: 설치 지침, 코드 예제 및 Spark 통합 전략 비교
- JDBC 연결: 서버리스의 번들 커넥터에서 지원하지 않는 옵션 또는 번들 커넥터가 없는 데이터 원본에 대해 JDBC 드라이버와 Unity 카탈로그 연결을 사용합니다.
- Spark API 옵션 참조: 파일 형식 및 스트리밍 원본에 대한 DataFrameReader, DataFrameWriter 및 스트리밍 옵션에 대한 참조입니다.