오브젝트 태그 모니터링하기

SQL 또는 Snowsight 를 사용하여 태그와 태그가 어떻게 구현되었는지 모니터링할 수 있습니다.

SQL로 태그 모니터링하기

다른 Account Usage 뷰 2개, Information Schema 테이블 함수 2개, Account Usage 테이블 함수 및 시스템 함수를 사용하여 SQL로 태그를 모니터링할 수 있습니다.

태그 사용을 모니터링하는 방법을 결정하는 두 가지 일반적인 접근 방식을 생각해보면 도움이 될 수 있습니다.

태그 검색

Snowflake는 태그를 나열하고 지정된 태그 키의 문자열 값을 식별하기 위해 다음 옵션을 지원합니다.

  • 계정의 태그 식별:

    공유 SNOWFLAKE 데이터베이스의 Account Usage 스키마에서 TAGS 뷰를 사용합니다. 이 뷰는 현재 태그와 삭제된 태그에 대한 정보를 제공하는 Snowflake 계정의 모든 태그에 대한 카탈로그 로 생각할 수 있습니다. 예:

    SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.TAGS
      ORDER BY tag_name;
    
    Copy
  • 주어진 태그의 값 식별:

    SYSTEM$GET_TAG 시스템 함수를 사용하여 지정된 태그와 Snowflake 오브젝트 또는 열에 할당된 태그 값을 반환합니다.

    SELECT SYSTEM$GET_TAG('cost_center', 'my_table', 'table');
    
    Copy

할당 식별하기

Snowflake는 쿼리가 계정을 대상으로 해야 하는지 특정 데이터베이스를 대상으로 해야 하는지, 태그 상속을 추적할지 여부에 따라 태그 할당을 식별하는 다양한 옵션을 지원합니다.

  • 계보가 있는 계정 수준 쿼리:

    Account Usage 테이블 함수 TAG_REFERENCES_WITH_LINEAGE 를 사용하여 태그를 상속한 오브젝트를 포함하여 주어진 태그 키와 태그 값을 가진 모든 오브젝트를 확인합니다.

    SELECT *
      FROM TABLE(
        SNOWFLAKE.ACCOUNT_USAGE.TAG_REFERENCES_WITH_LINEAGE(
          'my_db.my_schema.cost_center'
        )
      );
    
    Copy
  • 계보가 없는 계정 수준 쿼리:

    Account Usage TAG_REFERENCES 뷰를 사용하여 주어진 태그 키와 태그 값이 있는 모든 오브젝트를 확인하지만, 태그를 상속한 오브젝트를 포함하지 않습니다.

    SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.TAG_REFERENCES
      ORDER BY tag_name, domain, object_id;
    
    Copy
  • 계보가 있는 데이터베이스 수준 쿼리:

    모든 Snowflake 데이터베이스에는 Snowflake Information Schema 가 포함됩니다. Information Schema 테이블 함수 TAG_REFERENCES 를 사용하여 지정된 데이터베이스에서 태그를 상속한 오브젝트를 포함하여 지정된 태그를 가진 모든 오브젝트를 확인합니다.

    SELECT *
      FROM TABLE(
        my_db.INFORMATION_SCHEMA.TAG_REFERENCES(
          'my_table',
          'table'
        )
      );
    
    Copy
  • 계보가 있는 테이블 또는 뷰의 모든 열에서 모든 태그에 대한 데이터베이스 수준 쿼리:

    Information Schema 테이블 함수 TAG_REFERENCES_ALL_COLUMNS 를 사용하여 주어진 테이블 또는 뷰의 모든 열에 설정된 모든 태그를 가져옵니다.

    오브젝트 이름이 뷰(즉, 뷰, 구체화된 뷰)인 경우에도 열이 포함된 모든 오브젝트에는 TABLE 도메인을 사용해야 합니다.

    SELECT *
      FROM TABLE(
        INFORMATION_SCHEMA.TAG_REFERENCES_ALL_COLUMNS(
          'my_table',
          'table'
        )
      );
    
    Copy

Snowsight 로 태그 모니터링하기

Snowsight Monitoring » Governance 영역을 사용하여 테이블, 뷰, 열과 함께 정책 및 태그 사용량을 모니터링하고 보고할 수 있습니다. DashboardTagged Objects 의 두 가지 서로 다른 인터페이스가 있습니다.

DashboardTagged Objects 인터페이스를 사용할 때 다음 세부 사항에 유의하십시오.

  • DashboardTagged Objects 인터페이스에는 실행 중인 웨어하우스가 필요합니다.

  • Snowsight 는 Dashboard 를 12시간마다 업데이트합니다.

  • Tagged Objects 정보 대기 시간은 최대 2시간까지 될 수 있으며 최대 1,000개의 오브젝트를 반환합니다.

Snowsight의 거버넌스 영역에 액세스하기

Governance 영역에 액세스하려면 Snowflake 계정이 Enterprise Edition 이상 이어야 합니다. 또한 다음 중 하나를 수행해야 합니다.

  • ACCOUNTADMIN 역할을 사용합니다.

  • GOVERNANCE_VIEWER OBJECT_VIEWER 데이터베이스 역할이 직접 부여된 계정 역할을 사용합니다.

    이러한 데이터베이스 역할 부여와 함께 계정 역할을 반드시 사용해야 합니다. 현재, Snowsight 는 테이블, 뷰, 데이터 액세스 정책, 태그에 대한 액세스 권한이 있는 역할 계층 구조와 사용자 정의 데이터베이스 역할을 평가하지 않습니다.

    계정 역할에 이러한 두 가지 데이터베이스 역할이 부여되었는지 확인하려면 SHOW GRANTS 명령을 사용하십시오.

    SHOW GRANTS LIKE '%VIEWER%' TO ROLE data_engineer;
    
    Copy
    |-------------------------------+-----------+---------------+-----------------------------+------------+-----------------+--------------+------------|
    | created_on                    | privilege | granted_on    | name                        | granted_to | grantee_name    | grant_option | granted_by |
    |-------------------------------+-----------+---------------+-----------------------------+------------+-----------------+--------------+------------|
    | 2024-01-24 17:12:26.984 +0000 | USAGE     | DATABASE_ROLE | SNOWFLAKE.GOVERNANCE_VIEWER | ROLE       | DATA_ENGINEER   | false        |            |
    | 2024-01-24 17:12:47.967 +0000 | USAGE     | DATABASE_ROLE | SNOWFLAKE.OBJECT_VIEWER     | ROLE       | DATA_ENGINEER   | false        |            |
    |-------------------------------+-----------+---------------+-----------------------------+------------+-----------------+--------------+------------|
    

    계정 역할에 이러한 데이터베이스 역할 중 하나 또는 둘 다 부여되지 않은 경우 GRANT DATABASE ROLE 명령을 사용하고 SHOW GRANTS 명령을 다시 실행하여 권한 부여를 확인하십시오.

    USE ROLE ACCOUNTADMIN;
    GRANT DATABASE ROLE SNOWFLAKE.GOVERNANCE_VIEWER TO ROLE data_engineer;
    GRANT DATABASE ROLE SNOWFLAKE.OBJECT_VIEWER TO ROLE data_engineer;
    SHOW GRANTS LIKE '%VIEWER%' TO ROLE data_engineer;
    
    Copy

    이러한 데이터베이스 역할에 대한 자세한 내용은 SNOWFLAKE 데이터베이스 역할 섹션을 참조하십시오.

대시보드

데이터 관리자는 Dashboard 인터페이스를 사용하여 다음과 같은 방법으로 태그 및 정책 사용을 모니터링할 수 있습니다.

  • 적용 범위: 테이블, 뷰 또는 열에 정책 또는 태그가 있는지 여부를 기준으로 개수와 백분율을 지정합니다.

  • 배포: 가장 자주 사용되는 정책과 태그를 나열하고 계수합니다.

적용 범위와 배포를 통해 데이터가 얼마나 잘 보호되고 태그가 지정되었는지에 관해 알 수 있습니다.

개수, 백분율, 정책 이름 또는 태그 이름을 선택하면 Tagged Objects 인터페이스가 열립니다. Tagged Objects 인터페이스는 Dashboard 에서 선택한 항목을 기준으로 필터를 자동으로 업데이트합니다.

모니터링 정보는 여러 Account Usage 뷰에서 복잡하고 쿼리 집약적인 작업 실행에 대한 대안 또는 보완책입니다.

이러한 뷰에는 COLUMNS, POLICY_REFERENCES, TABLES, TAG_REFERENCESVIEWS 뷰가 포함될 수 있지만 이에 국한되는 것은 아닙니다.

태그가 지정된 오브젝트

데이터 관리자는 이 테이블을 사용하여 Dashboard 의 적용 범위와 배포를 특정 테이블, 뷰 또는 열 목록에 빠르게 연결할 수 있습니다. 다음과 같이 테이블 결과를 수동으로 필터링할 수도 있습니다.

  • Tables 또는 Columns 를 선택합니다.

  • 태그의 경우 태그를 사용하거나 사용하지 않거나 특정 태그를 기준으로 필터링할 수 있습니다.

  • 정책의 경우 정책을 사용하거나 사용하지 않거나 특정 정책을 기준으로 필터링할 수 있습니다.

테이블에서 행을 선택하면 Data » Databases 에서 Table Details 또는 Columns 탭이 열립니다. 필요에 따라 태그 및 정책 할당을 편집할 수 있습니다.