번들 커넥터에 대한 서버리스 쓰기 옵션

서버리스 컴퓨팅에서 번들 커넥터를 사용하여 외부 데이터 원본에 쓸 때 커넥터 옵션의 하위 집합만 지원됩니다. 다음 표에는 커넥터당 지원되는 옵션이 나와 있습니다.

설치 지침 및 예제는 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 배포 키로 사용할 열입니다. diststyleKEY인 경우 필요합니다.
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 및 스트리밍 옵션에 대한 참조입니다.