[Ultimate]{class="badge positive"}
Flow Service API를 사용하여 Snowflake 기본 연결 만들기
Last update: Fri Jul 19 2024 00:00:00 GMT+0000 (Coordinated Universal Time)
Snowflake 원본은 Real-time Customer Data Platform Ultimate를 구입한 사용자가 소스 카탈로그에서 사용할 수 있습니다.
기본 연결은 소스와 Adobe Experience Platform 간의 인증된 연결을 나타냅니다.
[Flow Service API] (https://www.adobe.io/experience-platform-apis/references/flow-service/)를 사용하여 Snowflake에 대한 기본 연결을 만드는 방법을 알아보려면 다음 자습서를 사용하십시오.
시작하기
이 안내서를 사용하려면 Adobe Experience Platform의 다음 구성 요소에 대해 이해하고 있어야 합니다.
- 원본: Experience Platform에서는 데이터를 다양한 원본에서 수집할 수 있으며 Platform 서비스를 사용하여 들어오는 데이터를 구조화하고 레이블을 지정하고 개선하는 기능을 제공합니다.
- 샌드박스: Experience Platform에서는 단일 Platform 인스턴스를 별도의 가상 환경으로 분할하여 디지털 경험 응용 프로그램을 개발하고 발전시키는 데 도움이 되는 가상 샌드박스를 제공합니다.
Platform API를 성공적으로 호출하는 방법에 대한 자세한 내용은 Platform API 시작에 대한 안내서를 참조하십시오.
다음 섹션에서는 Flow Service API를 사용하여 Snowflake에 성공적으로 연결하기 위해 알아야 할 추가 정보를 제공합니다.
필요한 자격 증명 수집
Snowflake 원본을 인증하려면 다음 자격 증명 속성에 대한 값을 제공해야 합니다.
계정 키 인증
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 |
|
자격 증명 |
설명 |
account |
계정 이름은 조직 내에서 계정을 고유하게 식별합니다. 이 경우 서로 다른 Snowflake 조직에서 계정을 고유하게 식별해야 합니다. 이렇게 하려면 계정 이름 앞에 조직 이름을 추가해야 합니다. 예: orgname-account_name . 계정 이름에 대한 자세한 내용은 계정 식별자에서 Snowflake 설명서를 참조하십시오. |
warehouse |
Snowflake 웨어하우스에서 응용 프로그램의 쿼리 실행 프로세스를 관리합니다. 각 Snowflake 웨어하우스는 서로 독립적이며 데이터를 플랫폼으로 가져올 때 개별적으로 액세스해야 합니다. |
database |
Snowflake 데이터베이스에 플랫폼에 가져올 데이터가 있습니다. |
username |
Snowflake 계정의 사용자 이름입니다. |
password |
Snowflake 사용자 계정의 암호입니다. |
role |
Snowflake 세션에서 사용할 기본 액세스 제어 역할입니다. 역할은 지정된 사용자에게 이미 할당된 기존 역할이어야 합니다. 기본 역할은 PUBLIC 입니다. |
connectionString |
Snowflake 인스턴스에 연결하는 데 사용되는 연결 문자열입니다. Snowflake에 대한 연결 문자열 패턴은 jdbc:snowflake://{ACCOUNT_NAME}.snowflakecomputing.com/?user={USERNAME}&password={PASSWORD}&db={DATABASE}&warehouse={WAREHOUSE} 입니다. |
키 쌍 인증
키 쌍 인증을 사용하려면 2048비트 RSA 키 쌍을 생성한 다음 Snowflake 소스에 대한 계정을 만들 때 다음 값을 제공해야 합니다.
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 |
|
자격 증명 |
설명 |
account |
계정 이름은 조직 내에서 계정을 고유하게 식별합니다. 이 경우 서로 다른 Snowflake 조직에서 계정을 고유하게 식별해야 합니다. 이렇게 하려면 계정 이름 앞에 조직 이름을 추가해야 합니다. 예: orgname-account_name . 계정 이름에 대한 자세한 내용은 계정 식별자에서 Snowflake 설명서를 참조하십시오. |
username |
Snowflake 계정의 사용자 이름입니다. |
privateKey |
Snowflake 계정의 Base64-인코딩된 개인 키입니다. 암호화되거나 암호화되지 않은 개인 키를 생성할 수 있습니다. 암호화된 개인 키를 사용하는 경우 Experience Platform에 대해 인증할 때 개인 키 암호도 제공해야 합니다. |
privateKeyPassphrase |
개인 키 암호는 암호화된 개인 키로 인증할 때 사용해야 하는 추가 보안 계층입니다. 암호화되지 않은 개인 키를 사용하는 경우에는 암호를 제공할 필요가 없습니다. |
database |
Experience Platform 대상으로 수집할 데이터가 포함된 Snowflake 데이터베이스입니다. |
warehouse |
Snowflake 웨어하우스에서 응용 프로그램의 쿼리 실행 프로세스를 관리합니다. 각 Snowflake 웨어하우스는 서로 독립적이므로 Experience Platform으로 데이터를 가져올 때 개별적으로 액세스해야 합니다. |
이러한 값에 대한 자세한 내용은 Snowflake 키 쌍 인증 가이드를 참조하십시오.
Snowflake 데이터베이스에서 Experience Platform으로 데이터를 언로드하려면 PREVENT_UNLOAD_TO_INLINE_URL
플래그를 FALSE
(으)로 설정해야 합니다.
기본 연결 만들기
기본 연결은 소스의 인증 자격 증명, 연결의 현재 상태 및 고유한 기본 연결 ID를 포함하여 소스와 플랫폼 간에 정보를 유지합니다. 기본 연결 ID를 사용하면 소스 내에서 파일을 탐색 및 탐색하고 데이터 유형 및 형식에 대한 정보를 포함하여 수집할 특정 항목을 식별할 수 있습니다.
기본 연결 ID를 만들려면 Snowflake 인증 자격 증명을 요청 본문의 일부로 제공하는 동안 /connections
끝점에 대한 POST 요청을 만듭니다.
API 형식
연결 문자열
accordion |
요청 |
다음 요청은 Snowflake에 대한 기본 연결을 만듭니다.
code language-shell |
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Snowflake base connection",
"description": "Snowflake base connection",
"auth": {
"specName": "ConnectionString",
"params": {
"connectionString": "jdbc:snowflake://{ACCOUNT_NAME}.snowflakecomputing.com/?user={USERNAME}&password={PASSWORD}&db={DATABASE}&warehouse={WAREHOUSE}"
}
},
"connectionSpec": {
"id": "b2e08744-4f1a-40ce-af30-7abac3e23cf3",
"version": "1.0"
}
}'
|
table 0-row-2 1-row-2 2-row-2 |
|
속성 |
설명 |
auth.params.connectionString |
Snowflake 인스턴스에 연결하는 데 사용되는 연결 문자열입니다. Snowflake에 대한 연결 문자열 패턴은 jdbc:snowflake://{ACCOUNT_NAME}.snowflakecomputing.com/?user={USERNAME}&password={PASSWORD}&db={DATABASE}&warehouse={WAREHOUSE} 입니다. |
connectionSpec.id |
Snowflake 연결 사양 ID: b2e08744-4f1a-40ce-af30-7abac3e23cf3 . |
|
accordion |
응답 |
성공한 응답은 고유 연결 식별자(id )를 포함하여 새로 만든 연결을 반환합니다. 이 ID는 다음 자습서에서 데이터를 탐색하는 데 필요합니다.
code language-json |
{
"id": "2fce94c1-9a93-4971-8e94-c19a93097129",
"etag": "\"d403848a-0000-0200-0000-5e978f7b0000\""
}
|
|
암호화된 개인 키를 사용한 키 쌍 인증
accordion |
요청 |
code language-shell |
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Snowflake base connection with encrypted private key",
"description": "Snowflake base connection with encrypted private key",
"auth": {
"specName": "KeyPair Authentication",
"params": {
"account": "acme-snowflake123",
"username": "acme-cj123",
"database": "ACME_DB",
"privateKey": "{BASE_64_ENCODED_PRIVATE_KEY}",
"privateKeyPassphrase": "abcd1234",
"warehouse": "COMPUTE_WH"
}
},
"connectionSpec": {
"id": "b2e08744-4f1a-40ce-af30-7abac3e23cf3",
"version": "1.0"
}
}'
|
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 |
|
속성 |
설명 |
auth.params.account |
Snowflake 계정의 이름입니다. |
auth.params.username |
Snowflake 계정과 연결된 사용자 이름. |
auth.params.database |
데이터를 가져올 위치의 Snowflake 데이터베이스입니다. |
auth.params.privateKey |
Snowflake 계정의 Base64-암호화된 개인 키입니다. |
auth.params.privateKeyPassphrase |
개인 키에 해당하는 암호입니다. |
auth.params.warehouse |
사용 중인 Snowflake 웨어하우스입니다. |
connectionSpec.id |
Snowflake 연결 사양 ID: b2e08744-4f1a-40ce-af30-7abac3e23cf3 . |
|
accordion |
응답 |
성공한 응답은 고유 연결 식별자(id )를 포함하여 새로 만든 연결을 반환합니다. 이 ID는 다음 자습서에서 데이터를 탐색하는 데 필요합니다.
code language-json |
{
"id": "2fce94c1-9a93-4971-8e94-c19a93097129",
"etag": "\"d403848a-0000-0200-0000-5e978f7b0000\""
}
|
|
암호화되지 않은 개인 키를 사용한 키 쌍 인증
accordion |
요청 |
code language-shell |
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Snowflake base connection with encrypted private key",
"description": "Snowflake base connection with encrypted private key",
"auth": {
"specName": "KeyPair Authentication",
"params": {
"account": "acme-snowflake123",
"username": "acme-cj123",
"database": "ACME_DB",
"privateKey": "{BASE_64_ENCODED_PRIVATE_KEY}",
"warehouse": "COMPUTE_WH"
}
},
"connectionSpec": {
"id": "b2e08744-4f1a-40ce-af30-7abac3e23cf3",
"version": "1.0"
}
}'
|
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 |
|
속성 |
설명 |
auth.params.account |
Snowflake 계정의 이름입니다. |
auth.params.username |
Snowflake 계정과 연결된 사용자 이름. |
auth.params.database |
데이터를 가져올 위치의 Snowflake 데이터베이스입니다. |
auth.params.privateKey |
Snowflake 계정의 Base64-암호화되지 않은 개인 키입니다. |
auth.params.warehouse |
사용 중인 Snowflake 웨어하우스입니다. |
connectionSpec.id |
Snowflake 연결 사양 ID: b2e08744-4f1a-40ce-af30-7abac3e23cf3 . |
|
accordion |
응답 |
성공한 응답은 고유 연결 식별자(id )를 포함하여 새로 만든 연결을 반환합니다. 이 ID는 다음 자습서에서 데이터를 탐색하는 데 필요합니다.
code language-json |
{
"id": "2fce94c1-9a93-4971-8e94-c19a93097129",
"etag": "\"d403848a-0000-0200-0000-5e978f7b0000\""
}
|
|
이 자습서에 따라 Flow Service API를 사용하여 Snowflake 기본 연결을 만들었습니다. 다음 자습서에서 이 기본 연결 ID를 사용할 수 있습니다.