Microsoft Dataverse용 Openflow 커넥터 설정

Microsoft Dataverse용 Openflow 커넥터 설정

기능 — 일반 공급(Generally Available)

Snowflake 커넥터는 Snowflake Openflow를 사용할 수 있는 모든 리전에서 지원돼요.

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

BYOC 배포의 Snowflake Openflow는 AWS 상용 리전(상용 리전)의 모든 계정에서만 사용할 수 있어요.

참고

이 커넥터는 Snowflake 커넥터 약관의 적용을 받아요.

이 항목에서는 Microsoft Dataverse용 Openflow 커넥터를 설정하는 단계를 설명해요.

사전 요구 사항

  1. Microsoft Dataverse용 Openflow 커넥터 소개를 검토했는지 확인하세요.
  2. Openflow - Snowflake 배포 설정 또는 Openflow - BYOC 설정을 완료했는지 확인하세요.
  3. Openflow - Snowflake 배포를 사용하는 경우 필수 도메인 구성을 검토했고, Microsoft Dataverse 커넥터의 필수 도메인에 접근 권한을 부여했는지 확인하세요.

자격 증명 가져오기

Microsoft Dataverse 관리자로서 다음 단계를 수행하세요.

  1. 작업할 Dataverse 환경이 있고 https://admin.powerplatform.microsoft.com/을 통해 해당 환경에 접근할 수 있는지 확인하세요.
  2. portal.azure.com의 Microsoft Entra ID에 등록된 애플리케이션이 있는지 확인하세요. 이 애플리케이션은 Dataverse 환경이 있는 테넌트에 접근할 수 있어야 해요. 애플리케이션을 등록하려면 이 가이드를 따르세요.
  3. 해당 애플리케이션에서 ClientID와 Client Secret을 생성·저장하세요.
  4. Power Apps 관리 센터로 이동해 이전에 등록한 애플리케이션을 통해 접근되도록 Dataverse 환경을 구성하세요. 이렇게 하려면 관리(Manage) » 환경(Environments) 으로 이동해 구성할 환경을 선택하세요. 그런 다음 설정(Settings) » 사용자 및 권한(Users & permissions) » 애플리케이션 사용자(Application users) 로 이동하세요. 이전에 만든 애플리케이션을 추가하고 Microsoft Dataverse에서 데이터를 읽는 데 필요한 권한을 부여해야 해요.
  5. https://admin.powerplatform.microsoft.com/에서 선택한 Dataverse 환경의 환경 URL을 복사·저장하세요.

Snowflake 계정 설정

Openflow 관리자로서 다음 작업을 수행해 Snowflake 계정을 설정하세요. 기본 SNOWFLAKE_MANAGED 인증 전략에서는 런타임의 execute-as 역할이 커넥터가 Snowflake에 접근할 때 사용하는 ID이므로 다음 권한을 부여하세요.

참고

Openflow - BYOC 배포에 커넥터를 배포하고, 권장되는 SNOWFLAKE_MANAGED 대신 KEY_PAIR 인증 전략을 사용한다면 런타임의 관리 토큰에 의존하는 대신 동일한 execute-as 역할을 서비스 사용자에게도 부여해야 해요. 서비스 사용자를 만들려면 Openflow - BYOC 배포의 키 페어 인증 설정을 참조하세요.

데이터베이스, 스키마, 웨어하우스 만들기

  1. 대상 데이터베이스를 만들어요.
USE ROLE OPENFLOW_ADMIN;
CREATE DATABASE IF NOT EXISTS <destination_database>;
  1. 대상 스키마를 만들어요.
CREATE SCHEMA IF NOT EXISTS <destination_database>.<destination_schema>;
  1. 런타임의 execute-as 역할에 필요한 권한을 부여해요.
GRANT USAGE ON DATABASE <destination_database> TO ROLE OPENFLOW_<RUNTIME_NAME>_EXECUTE_AS_RL;
GRANT USAGE ON SCHEMA <destination_database>.<destination_schema> TO ROLE OPENFLOW_<RUNTIME_NAME>_EXECUTE_AS_RL;
GRANT CREATE TABLE ON SCHEMA <destination_database>.<destination_schema> TO ROLE OPENFLOW_<RUNTIME_NAME>_EXECUTE_AS_RL;
  1. 웨어하우스(또는 기존 웨어하우스)를 만들고 사용 권한을 부여해요.
CREATE WAREHOUSE IF NOT EXISTS <openflow_warehouse>
  WITH
  WAREHOUSE_SIZE = 'XSMALL'
  AUTO_SUSPEND = 300
  AUTO_RESUME = TRUE;

GRANT USAGE, OPERATE ON WAREHOUSE <openflow_warehouse> TO ROLE OPENFLOW_<RUNTIME_NAME>_EXECUTE_AS_RL;
  1. 커넥터가 수집한 테이블에 다른 Snowflake 사용자가 접근해야 한다면(예: Snowflake에서 맞춤 처리용), 해당 사용자에게 execute-as 역할을 부여하세요.

커넥터 설정

데이터 엔지니어로서 다음 작업을 수행해 커넥터를 설치·구성하세요.

커넥터 설치

데이터 엔지니어로서 커넥터를 설치하려면 다음을 수행하세요.

  1. Openflow의 커넥터 라이브러리(Connector library) 탭으로 이동해요.
  2. Openflow 커넥터 페이지에서 커넥터를 찾아 설치(Install) 를 선택해요.
  3. 런타임 선택(Select runtime) 대화상자에서 사용 가능한 런타임(Available runtimes) 드롭다운 목록에서 런타임을 선택하고 설치를 클릭해요.

참고

커넥터를 설치하기 전에 커넥터가 수집한 데이터를 저장할 데이터베이스와 스키마를 Snowflake에 만들어 두었는지 확인하세요.

  1. Snowflake 계정 자격 증명으로 배포에 인증하고, 런타임 애플리케이션이 Snowflake 계정에 접근하도록 허용하라는 메시지가 표시되면 허용(Allow) 을 선택해요. 커넥터 설치 프로세스는 완료하는 데 몇 분 걸려요.
  2. Snowflake 계정 자격 증명으로 런타임에 인증해요.

커넥터 프로세스 그룹이 추가된 Openflow 캔버스가 나타나요.

커넥터 구성

  1. 가져온 프로세스 그룹을 오른쪽 클릭하고 매개변수(Parameters) 를 선택해요.
  2. 플로우 매개변수에 설명된 대로 필수 매개변수 값을 입력해요.

플로우 매개변수

이 절에서는 다음 매개변수 컨텍스트에 따라 구성할 수 있는 플로우 매개변수를 설명해요.

Dataverse 소스 매개변수

Microsoft Dataverse Web API는 OAuth 인증으로 접근을 보호하며 커넥터는 클라이언트 자격 증명 흐름(client credentials flow)을 사용해요. 클라이언트 ID와 Microsoft Entra에서 찾는 방법은 애플리케이션 ID(클라이언트 ID)를 참조하세요. 클라이언트 시크릿과 Microsoft Entra에서 찾는 방법은 인증서 및 시크릿을 참조하세요.

매개변수 설명
Source Dataverse Environment URL 데이터를 가져올 소스 시스템의 주요 식별자. URL은 Dataverse 테이블이 존재하는 네임스페이스를 나타내요. 또한 OAuth용 범위 매개변수를 만들 수 있게 해요.
Source Tenant ID Microsoft Azure 테넌트 ID. OAuth URL을 만드는 데 사용돼요. Microsoft Dataverse 환경은 이 테넌트에 속해야 해요.
Source OAuth Client ID Microsoft Dataverse API에 접근하는 데 사용되는 Microsoft Azure 클라이언트 ID. Microsoft Dataverse Web API는 OAuth 인증으로 접근을 보호하며 커넥터는 클라이언트 자격 증명 흐름을 사용해요. 클라이언트 ID에 대한 자세한 내용은 애플리케이션 ID(클라이언트 ID)를 참조하세요.
Source OAuth Client Secret Microsoft Dataverse API에 접근하는 데 사용되는 Microsoft Azure 클라이언트 시크릿. Microsoft Dataverse Web API는 OAuth 인증으로 접근을 보호하며 커넥터는 클라이언트 자격 증명 흐름을 사용해요. 클라이언트 시크릿에 대한 자세한 내용은 인증서 및 시크릿을 참조하세요.

Dataverse 대상 매개변수

참고

execute-as 역할에 대한 자세한 내용은 관련 설정 문서를 참조하세요.

매개변수 설명 필수
Destination Database 데이터가 저장될 데이터베이스. Snowflake에 이미 존재해야 해요. 이름은 대소문자를 구분해요. 따옴표 없는 식별자는 대문자로 제공하세요. 예
Destination Schema 데이터가 저장될 스키마. Snowflake에 이미 존재해야 해요. 이름은 대소문자를 구분해요. 따옴표 없는 식별자는 대문자로 제공하세요. 예: CREATE SCHEMA SCHEMA_NAME 또는 CREATE SCHEMA schema_name → SCHEMA_NAME 사용. CREATE SCHEMA "schema_name" 또는 CREATE SCHEMA "SCHEMA_NAME" → 각각 schema_name 또는 SCHEMA_NAME 사용 예
Snowflake Authentication Strategy 사용 시: Snowflake Openflow 배포 또는 BYOC: SNOWFLAKE_MANAGED를 사용해요. 이 토큰은 Snowflake가 자동으로 관리해요. BYOC 배포는 SNOWFLAKE_MANAGED를 사용하기 위해 이전에 execute-as 역할을 구성해야 해요. BYOC: 대안으로 BYOC는 인증 전략 값으로 KEY_PAIR를 사용할 수 있어요. 예
Snowflake Account Identifier 사용 시: SNOWFLAKE_MANAGED 인증 전략: 비워 두어야 해요. KEY_PAIR: [조직 이름]-[계정 이름] 형식의 Snowflake 계정 이름. 예
Snowflake Private Key 사용 시: SNOWFLAKE_MANAGED 인증 전략: 비워 두어야 해요. KEY_PAIR: PKCS8 표준에 따라 형식화되고 표준 PEM 헤더·푸터를 포함하는 인증용 RSA 프라이빗 키. Snowflake Private Key File 또는 Snowflake Private Key 중 하나를 정의해야 해요. 아니요
Snowflake Private Key File 사용 시: SNOWFLAKE_MANAGED 인증 전략: 프라이빗 키 파일은 비워 두어야 해요. KEY_PAIR: PKCS8 표준에 따라 형식화되고 표준 PEM 헤더·푸터를 포함하는, Snowflake에 인증하는 데 사용되는 RSA 프라이빗 키가 들어 있는 파일을 업로드해요. 헤더 줄은 -----BEGIN PRIVATE로 시작해요. Reference asset 확인란을 선택해 업로드하세요. 아니요
Snowflake Private Key Password 사용 시: SNOWFLAKE_MANAGED 인증 전략: 비워 두어야 해요. KEY_PAIR: Snowflake 프라이빗 키 파일과 연결된 비밀번호를 제공해요. 아니요
Snowflake Role 사용 시: SNOWFLAKE_MANAGED 인증 전략: 런타임의 execute-as 역할(또는 그에 부여된 하위 역할)을 사용해요. execute-as 역할은 Openflow UI의 런타임에 대한 View Details로 이동해 찾을 수 있어요. KEY_PAIR: 서비스 사용자에 대해 구성된 유효한 역할을 사용해요. 예
Snowflake Username 사용 시: SNOWFLAKE_MANAGED 인증 전략: 비워 두어야 해요. KEY_PAIR: Snowflake 인스턴스에 연결하는 데 사용되는 사용자 이름을 제공해요. 예
Snowflake Warehouse 쿼리를 실행하는 데 사용되는 Snowflake 웨어하우스. 예

Dataverse 수집 매개변수

매개변수 설명
Ingestion Schedule Interval 테이블 목록을 가져오고 수집을 초기화하는 프로세서의 트리거 간격으로 사용되는 간격. 기본값은 300초.
Source Tables Filter Strategy 수집할 테이블을 필터링하는 전략. REGEXP와 LIST 중 하나일 수 있음.
Source Tables Filter Value 테이블 필터의 값. Source Tables Filter Strategy가 REGEXP이면 선택된 테이블과 일치하는 정규식. LIST이면 쉼표로 구분된 테이블 이름 목록.
Column Filter JSON 선택 사항. 테이블별 열 필터를 지정하는 JSON 배열. 열은 이름(included, excluded) 또는 정규식 패턴(includedPattern, excludedPattern)으로 포함하거나 제외할 수 있어요. 테이블 값은 Source Tables Filter Value에서 사용하는 복수 엔티티 집합 이름(예: annotations)이 아니라 단수 논리 엔티티 이름(예: annotation)이어야 해요. 예: [ {"table": "mytable", "excluded": ["binarycolumn", "binarycolumn_binary"]} ]는 mytable에서 큰 이진 열을 제외해요. 자세한 내용은 테이블의 열 하위 집합 복제를 참조하세요.
Max Page Size 단일 요청에서 Dataverse 테이블에서 가져오는 레코드 수. 5000보다 클 수 없어요. 값을 높이면 수집 속도가 빨라질 수 있지만 시간 초과를 유발할 수도 있어요. 기본값은 1000.
Merge Task Schedule CRON 데이터가 저널 테이블에서 대상 테이블로 병합되는 시점을 정의하는 CRON 표현식. 기본값은 * * * * * ?로, 계속 병합해요. 더 좁은 일정을 사용하면 웨어하우스가 실행되는 시간을 줄일 수 있어요. 예: * 0 * * * ?는 매시간 정각에 1분 동안 병합해요.
Include Formatted Values 선택 사항. 커넥터가 Dataverse 서식 지정 값도 가져와 대상 테이블의 _DATAVERSE_FORMATTED_VALUES 열에 쓸지 여부. 기본값은 false. 서식 지정 값 포함 참조.

참고

Source Tables Filter Value를 구성할 때는 Microsoft Dataverse 인터페이스에 표시되는 테이블 이름이 아니라 엔티티 집합 이름(entity set name) (복수형, 예: annotations)을 사용하세요. 테이블의 엔티티 집합 이름을 찾으려면 Power Apps로 이동해 테이블(Tables) 을 선택하고 테이블을 찾은 다음 고급(Advanced) » 도구(Tools) » 집합 이름 복사(Copy set name) 를 선택하세요.

Column Filter JSON 매개변수는 다른 명명 규칙을 사용해요. 단수 논리 엔티티 이름(예: annotation)이 필요해요. 자세한 내용은 테이블의 열 하위 집합 복제를 참조하세요.

플로우 실행

  1. 캔버스를 오른쪽 클릭하고 모든 컨트롤러 서비스 활성화(Enable all Controller Services) 를 선택해요.
  2. 가져온 프로세스 그룹을 오른쪽 클릭하고 시작(Start) 을 선택해요. 커넥터가 데이터 수집을 시작해요.

테이블의 열 하위 집합 복제

커넥터는 테이블별로 복제되는 데이터를 구성된 열 하위 집합으로 필터링할 수 있어요.

열에 필터를 적용하려면 Dataverse 수집 매개변수의 Column Filter JSON 매개변수를 JSON 필터로 설정하세요. 필터를 적용할 각 테이블에 대해 하나의 항목씩 구성 배열을 추가하세요.

중요

table 필드는 Source Tables Filter Value에서 사용하는 복수 엔티티 집합 이름(예: annotations)이 아니라 단수 논리 엔티티 이름(예: annotation)을 사용해야 해요. Power Apps에서 논리 엔티티 이름을 찾으려면 Power Apps로 이동해 테이블을 선택하고 테이블을 찾은 다음 고급 » 도구 » 논리 이름 복사(Copy logical name) 를 선택하세요.

일부 열에는 _binary 접미사가 붙은 열 이름 아래에 이진 표현이 저장돼 있어요(예: mycolumn 열은 mycolumn_binary로도 나타날 수 있음). 그러한 열을 완전히 제외하려면 excluded 배열에 두 이름을 모두 나열하세요.

다음 예제는 테이블에서 큰 이진 열을 제외해요.

[
    {
        "table": "mytable",
        "excluded": ["mycolumn", "mycolumn_binary"]
    }
]

열은 이름이나 패턴으로 포함하거나 제외할 수 있어요. 테이블당 단일 조건을 적용하거나 여러 조건을 결합할 수 있으며, 제외가 포함보다 우선해요.

다음 예제는 사용 가능한 모든 필드를 보여줘요. table 필드는 필수이며 included, excluded, includedPattern, excludedPattern 중 하나 이상이 필요해요.

[
    {
        "table" : "<singular logical entity name>",
        "included": ["<column name>", "<column name>"],
        "excluded": ["<column name>", "<column name>"],
        "includedPattern": "<regular expression>",
        "excludedPattern": "<regular expression>",
    }
]

서식 지정 값 포함

Microsoft Dataverse는 많은 열을 옵션 집합 정수, 조회 GUID, 서식이 지정되지 않은 금액 같은 원시 값으로 저장해요. 그러한 열에 대해 Dataverse는 표시 값, 즉 서식 지정 값도 반환할 수 있어요: 선택, 예/아니오, 상태, 상태 이유 열의 지역화된 라벨, 조회 또는 소유자 열의 기본 이름, 그리고 로캘 서식의 숫자, 통화, 날짜. 어떤 열에 서식 지정 값이 있는지에 대한 자세한 내용은 Microsoft 문서의 OData를 사용한 열 선택을 참조하세요.

기본적으로 커넥터는 원시 값만 복제해요. 서식 지정 값도 복제하려면 Dataverse 수집 매개변수의 Include Formatted Values 매개변수를 true로 설정한 다음 커넥터 프로세스 그룹을 다시 시작해 변경 사항을 적용하세요.

이 매개변수를 활성화해도 원시 열은 변경되지 않아요. 대신 커넥터가 각 복제 테이블에 유형 OBJECT의 단일 _DATAVERSE_FORMATTED_VALUES 열을 추가해요. 객체의 키는 소스 열 이름이고 값은 항상 문자열이에요.

{
  "statuscode": "Active",
  "annualincome": "$80,000.00",
  "_transactioncurrencyid_value": "US Dollar"
}

이 열을 쿼리할 때 다음 사항을 유의하세요.

  • 조회 및 소유자 열은 Dataverse가 사용하는 _<column>_value 형식을 유지해요. 앞의 예제에서 _transactioncurrencyid_value가 그 예시예요.
  • 서식 지정 값이 없는 열은 객체에 없어요. 행에 서식 지정 값이 전혀 없으면 해당 행의 _DATAVERSE_FORMATTED_VALUES는 NULL이에요.
  • 소스에서 삭제된 행은 서식 지정 값을 가지지 않아요. 삭제 복제 방법에 대한 자세한 내용은 커넥터 관리 열을 참조하세요.
  • 이미 데이터를 복제한 커넥터에 대해 이 매개변수를 활성화하면 열은 다음 수집부터 채워져요. 이전에 복제된 행은 소스에서 다시 변경될 때까지 NULL을 유지해요.
  • 소스 테이블에 이미 _DATAVERSE_FORMATTED_VALUES라는 열이 있으면 해당 테이블의 수집이 실패해요.

단일 서식 지정 값을 읽으려면 키로 추출해 캐스팅하세요.

SELECT
    "statuscode",
    _DATAVERSE_FORMATTED_VALUES:statuscode::STRING AS statuscode_label
  FROM <destination_database>.<destination_schema>.ACCOUNTS;

Dataverse 열 이름은 소문자이므로 쿼리에서 따옴표로 묶어야 해요. 커넥터 관리 열은 대문자이며 따옴표가 필요 없어요.

참고

서식 지정 값은 Dataverse 환경의 로캘과 구성에 따라 달라지는 표시 문자열이므로 기본 데이터가 변경되지 않아도 변경될 수 있어요. 조인, 필터, 계산에는 원시 열을 사용하고, 서식 지정 값은 표시에 사용하세요.

테이블 상태 관리

커넥터는 Dataverse Table State Service 컨트롤러 서비스에 테이블별 수집 상태를 유지해요. 각 항목은 현재 수집 상태와 변경 추적에 사용되는 델타 토큰을 기록해요.

커넥터 상태 보기

모든 테이블의 현재 상태를 보려면:

  1. 캔버스를 오른쪽 클릭하고 Controller services 를 선택해요.
  2. Dataverse Table State Service 라는 컨트롤러 서비스를 찾아요.
  3. Dataverse Table State Service 메뉴에서 View state 를 클릭해요.

상태는 키/값 쌍의 집합이며, 키는 테이블 엔티티 집합 이름(예: accounts)이에요. 값의 형식은 <STATUS>;<deltaToken>;<skipToken>;<staleFlag>예요. 예:

accounts -> DONE;!AAAAAjE...;;

STATUS는 다음 중 하나일 수 있어요.

  • FETCHING — 커넥터가 이 테이블의 레코드를 적극적으로 가져오고 있어요.
  • PROCESSING — 테이블이 수집 대기열에 있지만 현재 가져오는 중이 아니에요.
  • DONE — 사용 가능한 모든 데이터를 성공적으로 가져왔어요. 커넥터는 Ingestion Schedule Interval 매개변수에 따라 다음 예약 실행 시 새 데이터를 확인해요.
  • FAILED — 복구할 수 없는 오류가 발생했어요. 세부 내용은 커넥터 로그를 검토하세요. 로그가 구성 문제 또는 알려진 제한 사항을 나타내면 해결하고 영향받는 테이블의 수집을 다시 시작하세요. 알려진 원인이 없으면 버그 또는 지원되지 않는 시나리오일 수 있으므로 Snowflake 지원에 문의하세요.

단일 테이블의 수집 다시 시작

필터에서 테이블을 제거했다가 다시 추가하면 커넥터가 해당 테이블을 전체 재수집해요. 현재 사용 가능한 모든 레코드를 다시 가져와 기본 키로 대상 테이블에 병합하므로 기존 행이 중복되지 않고 제자리에서 업데이트돼요. 그러나 커넥터는 다운타임 중 발생한 삭제 작업은 복구하지 않아요.

특정 테이블의 수집을 다시 시작하려면:

  1. 커넥터가 실행 중인지 확인하고 커넥터 프로세스 그룹을 열어요.
  2. 캔버스를 오른쪽 클릭하고 매개변수(Parameters) 를 선택한 다음 Source Tables Filter Value 매개변수에서 대상 테이블의 엔티티 집합 이름을 제거해요.
  3. List Dataverse Tables 프로세서를 중지했다가 다시 시작해 테이블 상태 제거를 트리거해요.
  4. 테이블 상태가 제거될 때까지 기다려요.
    1. 캔버스를 오른쪽 클릭하고 Controller services 를 선택해요.
    2. Dataverse Table State Service 라는 컨트롤러 서비스를 찾아 타원 메뉴에서 View state 를 선택해요.
    3. 테이블의 엔티티 집합 이름이 목록에 더 이상 나타나지 않을 때까지 기다려요.
  5. List Dataverse Tables 프로세서를 중지하고 모든 큐가 빌 때까지 기다려요.
  6. (선택 사항) Snowflake의 대상 객체를 DROP하고 커넥터가 다시 만들게 해요.

전체 재수집은 현재 소스에 존재하는 레코드만 upsert하므로, 다운타임 중 소스에서 삭제된 행은 대상 테이블에서 자동으로 제거되지 않아요. 대상 테이블을 삭제하고 다시 수집하면 테이블에는 여전히 소스에 남아 있는 레코드만 포함돼요.

다음 객체를 DROP하세요. <TABLE>은 테이블의 대문자 엔티티 집합 이름이에요.

  • 대상 테이블: <destination_database>.<destination_schema>.<TABLE>
  • 저널 테이블: <destination_database>.<destination_schema>.<TABLE>__JOURNAL
  • 저널 스트림: <destination_database>.<destination_schema>.<TABLE>__JOURNAL_STREAM
DROP STREAM IF EXISTS <destination_database>.<destination_schema>.<TABLE>__JOURNAL_STREAM;
DROP TABLE IF EXISTS <destination_database>.<destination_schema>.<TABLE>__JOURNAL;
DROP TABLE IF EXISTS <destination_database>.<destination_schema>.<TABLE>;
  1. Source Tables Filter Value 에 테이블의 엔티티 집합 이름을 다시 추가하고 List Dataverse Tables 프로세서를 다시 시작해요.
  2. 테이블 항목이 Dataverse Table State Service 상태에 다시 있는지 확인해요.

참고

모든 복제 테이블의 수집을 다시 시작하려면 각 테이블에 대해 이 절차를 반복하거나, Source Tables Filter Value 매개변수에서 모든 엔티티 집합 이름을 제거한 다음 다시 추가하세요.

커넥터가 실행되는 동안 FlowFile을 수동으로 삭제하지 마세요. 그렇게 하면 테이블이 FETCHING 상태로 무기한 남을 수 있어요. 이 경우 위에 설명된 대로 해당 테이블의 수집을 다시 시작하세요.

출처: Snowflake Microsoft Dataverse용 Openflow 커넥터 설정