동적 테이블 관리 정보

동적 테이블 관리에는 일반적으로 다음 작업이 포함됩니다.

작업

설명

동적 테이블 나열 및 동적 테이블에 대한 정보 보기

동적 테이블 나열 및 보기.

동적 테이블 삭제하기

동적 테이블 삭제.

동적 테이블에 대한 웨어하우스 또는 목표 지연 변경하기

동적 테이블 변경.

동적 테이블 나열 및 동적 테이블에 대한 정보 보기

데이터베이스의 동적 테이블을 나열하고 해당 동적 테이블에 대한 정보를 보려면 Snowsight 또는 SQL 명령을 사용할 수 있습니다.

Snowsight를 사용하여 동적 테이블 나열 및 세부 정보 보기

스키마의 동적 테이블을 나열하고 동적 테이블에 대한 정보를 보려면 다음을 수행하십시오.

  1. Snowsight 에 로그인합니다.

  2. Data » Databases 를 선택합니다.

  3. 데이터베이스와 스키마를 선택합니다.

  4. Schema Details 에서 Dynamic Tables 탭을 선택합니다.

    Dynamic Tables 를 확장하여 데이터베이스 오브젝트 탐색기에서 동적 테이블 목록을 볼 수도 있습니다.

  5. 특정한 동적 테이블에 대한 정보를 보려면 데이터베이스 오브젝트 탐색기 또는 Dynamic Tables 탭의 동적 테이블 목록에서 동적 테이블을 선택하십시오.

    이 페이지의 탭에는 다음을 비롯하여 테이블 세부 정보 페이지 와 동일한 정보가 일부 제공됩니다.

    • 동적 테이블의 정의와 동적 테이블 작업을 위해 부여된 권한

    • 동적 테이블의 열에 대한 정보

    • 동적 테이블에 있는 최대 100개의 데이터 행 미리 보기

    또한 동적 테이블 세부 정보 페이지에는 동적 테이블에 대한 정보를 보는 데 사용할 수 있는 탭이 포함됩니다.

SQL 명령을 사용하여 동적 테이블을 나열하고 세부 정보 보기

  • 현재 데이터베이스(또는 현재 사용 중인 데이터베이스가 없는 경우에는 계정)의 동적 테이블을 나열하려면 SHOW DYNAMIC TABLES 명령을 사용하십시오.

    예를 들어 데이터베이스 mydb 및 스키마 myschema 에서 이름이 product_ 로 시작하는 동적 테이블을 나열하려면 다음 SQL 문을 실행하십시오.

    SHOW DYNAMIC TABLES LIKE 'product_%' IN SCHEMA mydb.myschema;
    
    Copy

    명령의 전체 구문은 SHOW DYNAMIC TABLES 섹션을 참조하십시오.

  • 동적 테이블의 열에 대한 정보를 출력하려면 DESCRIBE DYNAMIC TABLE 명령을 사용하십시오.

    예를 들어 product 라는 동적 테이블의 열을 나열하려면 다음을 수행하십시오.

    DESC DYNAMIC TABLE product;
    
    Copy

동적 테이블도 TABLES 뷰 의 결과에 포함됩니다.

동적 테이블 삭제하기

동적 테이블을 삭제하려면 Snowsight 또는 SQL 명령을 사용할 수 있습니다.

Snowsight:
  1. Snowsight에서 동적 테이블 세부 정보 페이지를 엽니다(지침).

  2. 페이지의 오른쪽 위 모서리에 있는 More 메뉴에서 Drop 을 선택합니다.

SQL:
  • DROP DYNAMIC TABLE 명령을 사용합니다.

    예를 들어 product 라는 동적 테이블을 삭제하려면 다음을 수행하십시오.

DROP DYNAMIC TABLE product;
Copy

동적 테이블과 데이터 공유하기

동적 테이블은 공유 가능한 오브젝트입니다. 동적 테이블을 공유하기 위해 데이터 공유 공급자는 동적 테이블에 대한 권한을 공유에 부여하며, 이에 따라 데이터 공유 컨슈머가 동적 테이블을 사용할 수 있게 됩니다.

동적 테이블과 데이터를 공유하는 방법

공급자는 데이터를 물리적으로 이동하지 않고도 계정 간에 데이터를 공유하도록 허용하는 직접 공유 또는 목록을 사용하여 선택한 동적 테이블을 다른 Snowflake 계정과 공유할 수 있습니다. 이 프로세스에는 공급자 계정 내에서 데이터베이스의 공유 생성, 공급자 계정 내에서 데이터베이스 액세스 권한 부여, 액세스 권한 부여, 공유에 다른 오브젝트 추가 등이 포함됩니다. 자세한 내용은 Secure Data Sharing 정보Snowflake에서의 데이터 공유 및 공동 작업 섹션을 참조하십시오.

데이터 공유 공급자는 다음 예시와 같이 단일 동적 테이블에 대한 SELECT 권한을 부여하거나 데이터베이스의 모든 동적 테이블에 대한 SELECT 권한을 부여하도록 선택할 수 있습니다.

GRANT SELECT ON ALL DYNAMIC TABLES IN SCHEMA mydb.public TO SHARE share1;

GRANT SELECT ON DYNAMIC TABLE mydb.public TO SHARE share1;
Copy

자세한 내용은 GRANT <권한> … TO SHARE 섹션을 참조하십시오.

공유 데이터를 수집하기 위한 동적 테이블 만들기

공유 데이터를 수집하기 위해 동적 테이블을 만들려면 다음을 수행하십시오.

  1. 올바른 권한 이 있는지 확인하고 공유에서 데이터베이스를 만들고 그에 대한 권한을 부여합니다.

    CREATE DATABASE shared_db FROM SHARE provider_account.share1;
    
    Copy
  2. 공유 데이터베이스에 권한을 부여합니다.

  3. 공유 동적 테이블을 만듭니다.

    CREATE OR REPLACE DYNAMIC TABLE <dt_name>
      TARGET_LAG = '1 day'
      WAREHOUSE = <warehouse_name>
      AS
        SELECT * FROM shared_db.public.mydb;
    
    Copy

    참고

    동적 테이블에서 사용하는 모든 기본 오브젝트에서 변경 내용 추적을 활성화해야 합니다. 동적 테이블을 사용하여 공유 데이터를 수집하려면 데이터 공유 공급자가 공유 오브젝트에서 change_tracking 을 활성화해야 합니다. 변경 내용 추적 활성화 섹션을 참조하십시오.

동적 테이블을 사용하여 공유 데이터를 수집하는 경우 쿼리는 공유 동적 테이블이나 업스트림 동적 테이블을 참조하는 공유 보안 뷰에서 선택할 수 없습니다.

동적 테이블에 대한 웨어하우스 또는 목표 지연 변경하기

동적 테이블에 대한 웨어하우스 또는 목표 지연을 변경하려면 ALTER DYNAMIC TABLE 명령을 사용하십시오.

예를 들어 동적 테이블 product 의 웨어하우스를 my_other_wh 로 변경하려면 다음을 실행하십시오.

ALTER DYNAMIC TABLE product SET
  WAREHOUSE = my_other_wh;
Copy

다음 다이어그램에서는 다른 동적 테이블에 대한 업스트림 및 다운스트림 관계의 컨텍스트에서 일시 중단, 재개 및 수동 새로 고침 작업을 보여줍니다.

동적 테이블 간의 관계. 일시 중단, 재개, 수동 새로 고침을 설명하는 데 사용됩니다.

이 다이어그램은 동적 테이블로 만든 간단한 선언적 데이터 파이프라인을 보여줍니다. 개울에 물이 흐르는 것과 비슷하게, 동적 테이블 파이프라인의 데이터는 루트 다운스트림에서 리프 동적 테이블을 향해 흐릅니다.

  • DT2는 그 동적 테이블에 종속되므로 DT1의 다운스트림 으로 설명되고, 이에 종속되는 DT3의 업스트림 으로 설명됩니다.

  • DT3은 DT2에는 직접적으로, DT1에는 간접적으로 종속되므로 DT2와 DT1 모두의 다운스트림입니다.

  • DT1은 다른 동적 테이블의 직접적이거나 간접적인 업스트림입니다.

다운스트림 목표 지연 사용에 대한 자세한 내용과 예제는 목표 지연 이해하기 섹션을 참조하십시오.

동적 테이블의 최적 목표 지연 결정하기

동적 테이블의 최적 목표 지연 시간을 결정하려면 Snowsight 또는 SQL 명령을 사용할 수 있습니다.

Snowsight:
  1. 동적 테이블 세부 정보 페이지 에서 Refresh History 탭을 선택합니다.

  2. 탭 상단에 표시되는 최대 실제 지연 시간을 확인합니다. 이 메트릭은 각 새로 고침의 실제 지연 시간을 기반으로 합니다.

SQL:
  • INFORMATION_SCHEMA에서 DYNAMIC_TABLE_REFRESH_HISTORY 테이블 함수를 사용합니다. 이 함수는 새로 고침에 걸린 시간과 건너뛴 새로 고침을 포함하여 동적 테이블의 각 새로 고침에 대한 정보를 반환합니다.

선택하는 지연 시간은 자동 새로 고침 프로세스로 결정되는 새로 고침 일정에 영향을 줄 수 있습니다. 자동 새로 고침 프로세스에서는 동적 테이블의 지연 시간에 가장 적합한 일정을 선택합니다.

증분 또는 전체 새로 고침이 사용되는지 확인하기

증분 또는 전체 새로 고침이 동적 테이블을 업데이트하는 데 사용되는지 확인하려면 Snowsight 또는 SQL 명령을 사용할 수 있습니다.

Snowsight:
  • 동적 테이블 세부 정보 페이지 로 이동합니다.

    페이지 상단의 기본 세부 정보는 해당 테이블에 대해 증분 또는 전체 새로 고침이 사용되는지 여부를 나타냅니다.

SQL:
  • SHOW DYNAMIC TABLES 명령을 사용하고 출력에서 REFRESH_MODE 열의 값을 확인합니다.

    REFRESH_MODE_REASON에는 REFRESH_MODE 선택 항목에 대한 추가 세부 정보가 포함되어 있습니다.

기본 테이블의 열 변경 사항의 영향 이해하기

기본 테이블, 뷰, 기본 동적 테이블의 열은 시간이 지남에 따라 변경될 수 있습니다. 일부 변경 사항은 동적 테이블 자체에 영향을 줄 수 있는 반면, 다른 변경 사항은 영향이 제한적이거나 전혀 없을 수 있습니다.

동적 테이블과 연결된 기본 오브젝트가 변경되면 다음 동작이 적용됩니다.

변경

영향

  • 새 열이 추가됨

  • 사용하지 않는 기존 열이 제거되었습니다.

없습니다. 기본 테이블에 새 열이 추가되거나 사용되지 않은 열이 삭제되면 아무런 작업도 이루어지지 않고 이전과 같이 새로 고침이 계속됩니다.

  • 기초가 되는 기본 테이블이 동일한 열 이름과 유형으로 다시 생성됩니다.

  • 기본 테이블 열이 동일한 이름과 유형으로 다시 생성됩니다.

전체 새로 고침/재초기화: 다음 새로 고침 주기 동안 동적 테이블에 부정확하거나 오래된 데이터가 없도록 전체 새로 고침이 수행됩니다.

  • 동적 테이블에서 사용하는 기본 열 또는 기타 요소의 이름이 변경되거나 다른 방식으로 변경됩니다.

동적 테이블의 상태는 FAILED으로 변경됩니다. 변경 사항에 대응하려면 동적 테이블을 다시 만들어야 합니다.

자동 일시 중단 동작 이해하기

참고

시스템에서 새로 고침 오류를 5회 연속으로 확인할 경우 동적 테이블이 일시 중단됩니다. 새로 고침 오류로 인해 일시 중단된 동적 테이블은 사용자 작업이 아니라 시스템에서 일시 중단되므로 흔히 자동 일시 중단 이라고 합니다.

일시 중단된 동적 테이블에 종속된 동적 테이블도 일시 중단됩니다. SCHEDULING_STATE는 동적 테이블의 현재 상태를 설명합니다.

  • 동적 테이블의 예약 상태를 보려면 DYNAMIC_TABLE_GRAPH_HISTORY 테이블 함수를 호출하고 SCHEDULING_STATE 열을 검사하십시오.