Set up Openflow - Snowflake Deployment: Core Snowflake

Set up Openflow - Snowflake Deployment: Core Snowflake (Openflow - Snowflake 배포: 핵심 Snowflake)

Openflow - Snowflake 배포에는 다음 Snowflake 특정 리소스를 만들어야 해요.

출처: Snowflake Documentation

본문

기능 — 일반 공개(Generally Available)

Openflow Snowflake Deployments는 AWS, Azure, GCP의 상업용 리전에 있는 모든 계정에서 사용할 수 있어요.

  1. OPENFLOW_ADMIN 역할 생성
  2. 필수 권한 구성

이 작업들을 완료하려면 Snowsight에 로그인하고 SQL 워크시트를 열어요.

OPENFLOW_ADMIN 역할 생성

필요한 Openflow 관리 역할을 만들어요.

Note

<OPENFLOW_USER>는 Openflow에 접근하는 데 사용할 사용자를 나타내요.

USE ROLE ACCOUNTADMIN;

CREATE ROLE IF NOT EXISTS OPENFLOW_ADMIN;

GRANT ROLE OPENFLOW_ADMIN TO USER <OPENFLOW_USER>;

Caution

기본 역할이 ACCOUNTADMIN인 사용자는 Openflow - Snowflake 배포 런타임에 로그인할 수 없으며, 시도하면 오류 메시지를 받게 돼요. Snowflake는 런타임에 로그인할 모든 사용자에게 다른 기본 역할을 할당할 것을 권장해요. 또한 모든 Openflow 사용자에게 기본 보조 역할을 ALL로 설정할 것을 권장해요.

기본 역할을 변경하고 모든 보조 역할을 활성화하려면 다음을 실행해요.

예:

USE ROLE ACCOUNTADMIN;

ALTER USER <openflow_user> SET DEFAULT_ROLE = <openflow_admin>;
ALTER USER <openflow_user> SET DEFAULT_SECONDARY_ROLES = ('ALL');

필수 권한 구성

Openflow는 특정 Snowflake 계정 수준 권한을 정의해야 해요. 이 권한들은 기본 권한 집합의 일부로 ACCOUNTADMIN 역할에 할당돼요. ACCOUNTADMIN은 자동으로 다음 권한을 가지며, 아래 예제에서 OPENFLOW_ADMIN 역할로 표시된 Openflow 관리자 역할로 자신이 선택한 역할에 부여할 수 있어요.

Gen 2 권한

Gen 2 배포는 계정 수준 객체이고, 런타임과 커넥터는 스키마 수준 객체예요. 이 스키마 수준 객체는 존재할 데이터베이스와 스키마가 필요해요. Snowflake는 Openflow 인프라 객체를 보관할 데이터베이스·스키마 하나를 지정할 것을 권장하며, 이렇게 하면 관리가 쉬워져요.

  1. Openflow 관리자 역할에 필요한 계정 수준 권한을 부여해요.
USE ROLE ACCOUNTADMIN;

GRANT CREATE OPENFLOW DEPLOYMENT ON ACCOUNT TO ROLE OPENFLOW_ADMIN;
GRANT CREATE DATABASE ON ACCOUNT TO ROLE OPENFLOW_ADMIN;
GRANT CREATE INTEGRATION ON ACCOUNT TO ROLE OPENFLOW_ADMIN;

-- Snowflake deployments only:
GRANT CREATE COMPUTE POOL ON ACCOUNT TO ROLE OPENFLOW_ADMIN;
  1. gen 2 Openflow 객체를 보관할 데이터베이스와 스키마를 만들어요.
USE ROLE OPENFLOW_ADMIN;

CREATE DATABASE IF NOT EXISTS openflow_db;
CREATE SCHEMA IF NOT EXISTS openflow_db.openflow_schema;

이것이 Openflow 인프라 데이터베이스·스키마이며, 컨트롤 스키마라고도 불러요. 배포의 런타임, 커넥터, 커넥터가 참조하는 모든 시크릿이 여기에 살아요. 한 번 만들어 재사용해요.

Important

인프라 데이터베이스를 커넥터가 데이터를 쓰는 데이터베이스와 분리해 두세요. Snowflake는 커넥터별 전용 목적지 데이터베이스를 권장해요.

커넥터는 소스의 스키마·테이블 이름을 딴 목적지 스키마와 테이블을 만들어요. 그 이름들은 통제할 수 없고 소스가 변하면 바뀔 수 있으므로, 커넥터를 인프라 데이터베이스에 연결하면 거기에 살고 있는 Openflow 객체와 충돌할 위험이 있어요.

  1. Openflow 관리자 역할에 그 스키마에서 gen 2 객체를 만들 수 있는 능력을 부여해요.
USE ROLE ACCOUNTADMIN;

GRANT CREATE OPENFLOW RUNTIME ON SCHEMA openflow_db.openflow_schema TO ROLE OPENFLOW_ADMIN;
GRANT CREATE OPENFLOW CONNECTOR ON SCHEMA openflow_db.openflow_schema TO ROLE OPENFLOW_ADMIN;

전체 gen 2 설정 워크플로는 빠른 시작: gen 2 Openflow를 참고해요.

Gen 1 권한

새 gen 1 배포는 만들 수 없어요. 기존 gen 1 배포가 있다면 이 권한들을 부여해 런타임을 추가해요.

USE ROLE ACCOUNTADMIN;

GRANT CREATE OPENFLOW RUNTIME INTEGRATION ON ACCOUNT TO ROLE OPENFLOW_ADMIN;
GRANT CREATE DATABASE ON ACCOUNT TO ROLE OPENFLOW_ADMIN;
GRANT CREATE INTEGRATION ON ACCOUNT TO ROLE OPENFLOW_ADMIN;
GRANT CREATE COMPUTE POOL ON ACCOUNT TO ROLE OPENFLOW_ADMIN;

다음 단계

선택적으로 PrivateLink UI 접근 설정으로 사설 연결을 사용해 Snowflake Openflow Runtime UI에 접근해요.

배포 생성

더 알아보기 (Learn more)