Microsoft Fabric을 사용하여 Snowflake 관리 Apache Iceberg™ 테이블 쿼리하기

Microsoft Fabric에서 Snowflake 관리 Iceberg 테이블을 보려면 표준 Snowflake 데이터베이스를 Fabric에 연결하면 됩니다.

이 항목에서는 표준 Snowflake 데이터베이스를 Fabric에 연결하여 데이터베이스를 Fabric과 동기화하는 단계를 제공합니다. 데이터베이스를 연결할 때 기존 데이터베이스를 선택하거나 새 데이터베이스를 만들 수 있습니다. 그런 다음 Fabric의 데이터베이스에서 Snowflake 관리 Iceberg 테이블을 볼 수 있습니다.

Microsoft OneLake Fabric에 대한 자세한 내용은 Microsoft Fabric 설명서의 `Microsoft Fabric의 OneLake<https://learn.microsoft.com/en-us/fabric/onelake/>`_를 참조하세요.

전제 조건

시작하기 전에 Microsoft Fabric 및 Snowflake에 대한 다음 전제 조건을 완료합니다.

Microsoft Fabric

  • Microsoft Fabric 계정을 만듭니다. 자세한 내용은 `Microsoft Fabric 시작하기<https://www.microsoft.com/microsoft-fabric/getting-started>`_를 참조하세요.

  • Fabric 계정에서 작업 공간을 만듭니다. 지침은 Microsoft Fabric 설명서의 `작업 공간 만들기<https://learn.microsoft.com/en-us/fabric/fundamentals/create-workspaces>`_를 참조하세요. 이 작업 공간을 사용하여 Snowflake 관리 Iceberg 테이블을 쿼리합니다.

    참고

    영숫자 문자만 사용하여 Fabric 작업 공간의 이름을 지정하는 것이 좋습니다. Fabric 작업 공간 이름에 특수 문자 또는 공백과 같이 영숫자가 아닌 문자가 포함된 경우 나중에 이 ID를 지정하기 위해 작업 공간의 ID를 복사해야 합니다. 작업 공간 ID를 찾으려면 Fabric UI에서 작업 공간 열기를 선택한 후 브라우저에서 URL을 참조합니다.

  • Fabric 작업 공간의 관리자여야 합니다.

  • Fabric tenant 관리자는 Enable Snowflake database item (Preview) 테넌트 설정을 활성화하거나 이 결정을 Fabric 용량 관리자에게 위임해야 합니다. 이 설정은 Fabric 웹 UI의 관리자 포털에서 활성화할 수 있습니다. 관리자 포털에 액세스하려면 Microsoft Fabric 설명서의 `관리자 포털에 액세스하는 방법<https://learn.microsoft.com/en-us/fabric/admin/admin-center#how-to-get-to-the-admin-portal>`_을 참조하세요. 이 설정은 테넌트 수준에서 활성화하거나, Fabric 용량 관리자에게 위임하거나, 특정 보안 그룹에 대해서만 활성화할 수 있습니다.

Snowflake

  • 계정에 대해 CREATE USER 권한이 있는 Snowflake의 ACCOUNTADMIN 역할 또는 다른 역할에 대한 액세스 권한이 있어야 합니다.

  • 외부 볼륨을 생성할 수 있는 Snowflake의 ACCOUNTADMIN 역할 또는 다른 역할에 대한 액세스 권한이 있어야 합니다.

  • Snowflake에 표준 데이터베이스가 있어야 합니다. 자세한 지침은 CREATE DATABASE 섹션을 참조하십시오. 이 가이드에서는 이름이 ``SnowflakeFabricIcebergDB``인 표준 데이터베이스의 예를 참조합니다.

    참고

    이 항목의 단계를 완료하려면 기존 표준 데이터베이스가 있어야 합니다. 이 항목에는 해당 데이터베이스에 권한을 부여하는 단계가 포함되어 있습니다. 그러나 :ref:`Snowflake 데이터베이스를 Fabric에 연결<label_tables_iceberg_query_using_microsoft_fabric_connect_snowflake_standard_database>`할 때 데이터베이스를 생성하는 옵션이 있습니다. 데이터베이스를 Fabric에 연결할 때 새 데이터베이스를 생성하도록 선택한 경우 Snowflake의 데이터베이스에 필요한 권한을 부여해야 합니다.

1단계: Microsoft Fabric Tenant ID, Snowflake 조직 이름, Snowflake 계정 이름을 찾습니다.

Snowflake에서 Microsoft Fabric에 연결하려면 Microsoft Fabric Tenant ID가 필요합니다. Snowflake에서 Microsoft OneLake에 연결하려면 Snowflake 조직 이름과 Snowflake 계정 이름이 필요합니다.

  • Microsoft Fabric Tenant ID를 찾으려면 다음 단계를 따릅니다.

    1. `Microsoft Fabric<https://app.fabric.microsoft.com/>`_으로 이동하고 로그인합니다.

    2. ? 을 선택합니다.

    3. Help 창에서 :extui:`About Fabric`을 선택합니다.

    4. Fabric 창에서 Tenant URL`의 값을 확인하고 ``ctid` 뒤의 URL 부분을 텍스트 편집기에 복사합니다.

      예: a111a1a1-1111-111a-a11a-1a11a11111a1

  • Snowflake 조직 이름(<orgname>), and Snowflake account name (<accountname>)을 찾으려면 계정의 조직 및 계정 이름 찾기 섹션을 참조하세요.

2단계: Snowflake에서 역할 생성하기

이 단계에서는 Snowflake에서 역할을 생성한 다음 표준 데이터베이스를 사용하고 데이터베이스의 테이블에 대한 SELECT 문을 실행하는 데 필요한 권한을 부여합니다. 나중에 이 역할을 사용자에게 부여합니다.

ACCOUNTADMIN 역할로 다음 단계를 완료합니다.

  1. Snowsight 에 로그인합니다.

  2. Snowsight 에서 워크시트를 생성합니다. 자세한 내용은 Snowsight 에서 워크시트 만들기 섹션을 참조하십시오.

  3. 역할을 생성하려면 CREATE ROLE 명령을 사용합니다.

    USE ROLE ACCOUNTADMIN;
    
    CREATE ROLE IF NOT EXISTS R_ICEBERG_METADATA;
    
    Copy
  4. 표준 데이터베이스에 Iceberg 메타데이터 역할 권한을 부여하려면 SnowflakeFabricIcebergDB 데이터베이스에 권한을 부여하는 이 예제를 따릅니다.

    BEGIN
       LET db STRING := 'SnowflakeFabricIcebergDB';
       EXECUTE IMMEDIATE 'GRANT USAGE ON DATABASE ' || db || ' TO ROLE R_ICEBERG_METADATA';
       EXECUTE IMMEDIATE 'GRANT USAGE ON ALL SCHEMAS IN DATABASE ' || db || ' TO ROLE R_ICEBERG_METADATA';
       EXECUTE IMMEDIATE 'GRANT USAGE ON FUTURE SCHEMAS IN DATABASE ' || db || ' TO ROLE R_ICEBERG_METADATA';
       EXECUTE IMMEDIATE 'GRANT SELECT ON ALL ICEBERG TABLES IN DATABASE ' || db || ' TO ROLE R_ICEBERG_METADATA';
       EXECUTE IMMEDIATE 'GRANT SELECT ON FUTURE ICEBERG TABLES IN DATABASE ' || db || ' TO ROLE R_ICEBERG_METADATA';
    END;
    
    Copy
  5. 역할에 기존 웨어하우스에서 쿼리를 실행할 수 있는 권한을 부여하려면 COMPUTE_WH 웨어하우스에서 쿼리를 실행할 수 있는 권한을 역할에 부여하는 이 예제를 따릅니다.

    GRANT USAGE ON WAREHOUSE COMPUTE_WH TO ROLE R_ICEBERG_METADATA;
    
    Copy

3단계: Snowflake에서 사용자 생성하기

이 단계에서는 Snowflake에서 사용자를 생성한 다음 이전에 생성한 역할을 사용자에게 부여합니다. 이 권한을 통해 사용자는 표준 데이터베이스를 사용할 수 있습니다. 나중에 Microsoft Fabric에서 Snowflake 연결을 생성할 때 이 사용자의 자격 증명을 지정합니다.

이전에 Snowflake에서 사용자를 생성한 경우 이 단계를 건너뛸 수 있습니다.

  1. 생성한 역할을 기본값으로 사용하여 사용자를 생성하려면 CREATE USER 명령을 사용합니다.

    USE ROLE ACCOUNTADMIN;
    
    CREATE USER IF NOT EXISTS SVC_FABRIC_ICEBERG_METADATA
       TYPE = LEGACY_SERVICE
       LOGIN_NAME = 'SVC_FABRIC_ICEBERG_METADATA'
       DISPLAY_NAME = 'Service - Fabric Iceberg Metadata'
       PASSWORD = '<strong_password>'
       MUST_CHANGE_PASSWORD = FALSE
       DEFAULT_ROLE = R_ICEBERG_METADATA;
    
    Copy
  2. 생성한 역할을 사용자에게 부여합니다.

    GRANT ROLE R_ICEBERG_METADATA TO USER SVC_FABRIC_ICEBERG_METADATA;
    
    Copy

4단계: Microsoft Fabric에서 Snowflake 연결 생성하기

이 단계에서는 Microsoft Fabric에서 Snowflake 연결을 생성하여 Snowflake의 표준 데이터베이스를 Microsoft Fabric에 연결할 수 있습니다.

중요

다음 조건을 충족하는 기존 Snowflake 연결이 Microsoft Fabric에 이미 구성되어 있는 경우 이 단계를 건너뛸 수 있습니다.

  • 올바른 Snowflake 사용자 이름과 비밀번호 자격 증명을 사용합니다.

  • Snowflake의 필수 웨어하우스에 액세스할 수 있습니다.

  1. `Microsoft Fabric<https://app.fabric.microsoft.com/>`_으로 이동한 후 로그인합니다.

  2. Settings 아이콘을 선택합니다.

  3. Settings 에서 Manage connections and gateways 를 선택합니다.

  4. + New 를 선택합니다.

  5. New connection 대화 상자에서 Snowflake 연결을 생성합니다.

    1. Cloud 을 선택합니다.

    2. :ui:`Connection name`에 연결 이름을 입력합니다.

    3. Connection type 에서 Snowflake 을 선택합니다.

    4. :ui:`Server`에 Snowflake 계정의 식별자를 입력합니다.

      https://<orgname>-<accountname>.snowflakecomputing.com
      
      Copy

      여기서

    5. Warehouse`에 :ref:`역할 생성<label-tables_iceberg_query_using_microsoft_fabric_create_user> 시 R_ICEBERG_METADATA 역할 사용 액세스 권한을 부여한 Snowflake의 웨어하우스 이름(예: COMPUTE_WH)을 입력합니다.

    6. Authentication method 에서 Snowflake 을 선택합니다.

    7. Username`에 :ref:`Snowflake에서 생성된<label-tables_iceberg_query_using_microsoft_fabric_create_user> 사용자 이름을 입력합니다.

    8. Password`에 :ref:`Snowflake에서 생성된<label-tables_iceberg_query_using_microsoft_fabric_create_user> 사용자 비밀번호를 입력합니다.

    9. Create 를 선택합니다.

    참고

    Microsoft Fabric에서 Snowflake 연결을 만드는 방법에 대한 자세한 내용은 Microsoft Fabric 설명서의 `Snowflake 데이터베이스 연결 설정하기<https://learn.microsoft.com/fabric/data-factory/connector-snowflake>`_를 참조하세요.

  6. 연결이 생성된 후 텍스트 편집기로의 연결을 위해 :ui:`Connection ID`를 복사합니다.

    예를 들어 1111a111-11a1-1111-11a1-11aa1111aaa1 과 같습니다. 나중에 Snowflake 표준 데이터베이스를 Microsoft Fabric에 연결할 때 Snowflake에서 이 연결 ID를 지정해야 합니다.

5단계: Azure 다중 테넌트 애플리케이션 이름 검색

이 단계에서는 Snowflake를 사용하여 Azure 다중 테넌트 애플리케이션 이름을 검색합니다. 나중에 :ref:`Azure 다중 테넌트 애플리케이션에 Fabric 작업 공간에 대한 액세스 권한을 부여<label-tables_iceberg_query_using_microsoft_fabric_multi_tenant_app_access>`할 때 이 애플리케이션 이름을 지정합니다.

  1. Snowsight 에 로그인합니다.

  2. 탐색 메뉴에서 Ingestion » Add Data 를 선택합니다.

  3. Add Data 페이지에서 Microsoft OneLake 을 선택합니다.

  4. Fabric 테넌트 ID를 입력한 후 :ui:`Continue`를 선택합니다.

  5. Create an item in Microsoft Fabric 대화 상자 상단 근처에서 :ui:`Multi-tenant app name`을 텍스트 편집기에 복사합니다.

6단계: Azure 다중 테넌트 애플리케이션에 작업 공간에 대한 액세스 권한 부여하기

이 단계에서는 Azure 다중 테넌트 애플리케이션에 Fabric의 작업 공간에 대한 액세스 권한을 부여합니다.

  1. `Microsoft Fabric<https://app.fabric.microsoft.com/>`_으로 이동한 후 로그인합니다.

  2. Microsoft Fabric 작업 공간을 엽니다.

    작업 공간을 만들려면 전제 조건 섹션을 참조하세요.

  3. Manage access 을 선택합니다.

  4. + Add people or groups 을 선택합니다.

  5. Enter name or email 필드에 Snowflake의 Azure 다중 테넌트 애플리케이션 이름을 붙여넣습니다.

    Azure 다중 테넌트 앱 이름을 검색하려면 5단계: Azure 다중 테넌트 애플리케이션 이름 검색 섹션을 참조하세요.

  6. 앱이 필요한 Fabric 항목을 생성하도록 허용하려면 드롭다운 메뉴에서 Contributor 이상의 액세스 권한을 선택합니다.

  7. Add 을 선택합니다.

  8. 오른쪽 상단 영역에서 :ui:`Settings`를 선택한 후 :ui:`Manage connections and gateways`를 선택합니다.

  9. 오른쪽 상단 영역에서 연결 ID를 검색합니다.

    Microsoft Fabric에서 Snowflake 연결 생성 시 이 연결 ID를 복사했습니다.

  10. Connections 탭에서 연결을 마우스로 가리키고 연결에 대한 아이콘을 선택한 후 :ui:`Manage users`를 선택합니다.

  11. Search by name or email 필드에서 다중 테넌트 애플리케이션 이름을 검색한 다음 선택합니다.

  12. 사용자에게 적절한 수준의 권한을 선택합니다.

  13. 다중 테넌트 애플리케이션이 Snowflake 연결을 사용하도록 허용하려면 :ui:`Share`를 선택합니다.

7단계: Snowflake 표준 데이터베이스를 Microsoft Fabric에 연결하기

이 단계에서는 표준 Snowflake 데이터베이스를 Microsoft Fabric에 연결합니다.

  1. Snowsight 에 로그인합니다.

  2. 탐색 메뉴에서 Ingestion » Add Data 를 선택합니다.

  3. Add Data 페이지에서 Microsoft OneLake 을 선택합니다.

  4. Fabric 테넌트 ID를 입력하고 :ui:`Continue`를 선택합니다.

    Fabric 테넌트 ID를 찾으려면 1단계: Microsoft Fabric Tenant ID, Snowflake 조직 이름, Snowflake 계정 이름을 찾습니다. 섹션을 참조하세요.

  5. Entra 테넌트에서 Snowflake 계정의 다중 테넌트 애플리케이션 사용에 대한 동의를 제공하려면 :ui:`Provide consent`를 선택합니다.

    • 이전에 이 단계를 수행하지 않은 경우 동의하라는 메시지가 표시됩니다. 권한을 검토하고 동의한 후 다음 단계로 진행합니다.

    • Snowflake 계정에 대해 이 단계가 이미 완료되었을 수 있습니다. 완료된 경우 표시되는 팝업을 닫고 다음 단계로 진행합니다.

    • 동의 흐름을 완료할 수 없는 경우 Entra 테넌트 관리자에게 이 단계를 완료해 달라고 요청하세요.

  6. Continue 를 선택합니다.

  7. Create an item in Microsoft Fabric 대화 상자에서 필드를 채웁니다.

    • :ui:`Fabric workspace name`에 Iceberg 테이블을 보려는 Fabric의 작업 공간 이름을 입력합니다.

    • 연결 ID가 올바른 형식인지 확인하려면 Microsoft Fabric에서 Snowflake 연결 생성 시 복사한 Snowflake 연결 ID를 :ui:`Snowflake connection ID in Fabric`에 입력합니다.

      참고

      Snowflake 관리 테이블을 읽으려면 먼저 Fabric에서 Snowflake 연결 오브젝트를 생성해야 합니다.

    • :ui:`Snowflake database`에서, Fabric에서 보려는 Snowflake 관리 Iceberg 테이블이 포함된 Snowflake 데이터베이스를 선택합니다.

      참고

      새 Snowflake 데이터베이스를 생성하여 Fabric에 연결하려면 :ui:`+ Create a new database`를 선택합니다.

  8. Fabric 항목과 데이터베이스를 생성하려면 :ui:`Continue`를 선택합니다.

  9. Create External Volume 대화 상자에서 외부 볼륨을 생성하려면 볼륨 세부 정보를 검토한 다음 :ui:`Create Volume`을 선택합니다.

    Microsoft Fabric에서 Fabric 항목이 생성되고 Microsoft Fabric OneLake에서 외부 볼륨이 생성됩니다.

8단계: Iceberg 테이블 만들기

이 단계에서는 Snowflake의 표준 데이터베이스에 Snowflake 관리 Iceberg 테이블을 생성합니다.

  1. Snowsight 에 로그인합니다.

  2. Snowsight 에서 워크시트를 엽니다.

    자세한 내용은 탭에서 워크시트 열기 섹션을 참조하십시오.

  3. 표준 데이터베이스에서 샘플 Iceberg 테이블을 만듭니다.

    CREATE ICEBERG TABLE SnowflakeFabricIcebergDB.PUBLIC.SampleIcebergTable (
       id INT,
       name STRING
    )
    CATALOG = 'SNOWFLAKE';
    
    Copy
  4. 샘플 Iceberg 테이블에서 두 개의 행을 삽입합니다.

    INSERT INTO SnowflakeFabricIcebergDB.PUBLIC.SampleIcebergTable VALUES
       (1, 'Alice'),
       (2, 'Bob');
    
    Copy

9단계: Fabric에서 Iceberg 테이블 보기

  1. `Microsoft Fabric<https://app.fabric.microsoft.com/>`_으로 이동한 후 로그인합니다.

  2. 작업 공간을 엽니다.

    데이터베이스의 이름을 딴 새 Snowflake 데이터베이스 항목이 표시되어야 합니다. 필요한 경우 페이지를 새로 고칩니다.

  3. Snowflake에서 테이블을 생성한 위치에서 데이터베이스 항목과 스키마를 엽니다.

    Snowflake에서 생성한 Iceberg 테이블이 표시되어야 합니다. Snowflake에서 테이블을 업데이트하면 Microsoft Fabric에서 테이블 업데이트를 새로 고칠 수 있습니다.

  4. 오른쪽 위 모서리에서 SQL analytics endpoint 을 선택합니다.

    SQL을 사용하여 테이블과 상호 작용하거나 다른 Fabric 워크로드를 사용하여 다른 Fabric 데이터와 함께 이 테이블을 쿼리합니다.