Snowflake에서의 Git 작업

이 항목에서는 일반적인 리포지토리 작업을 수행하는 방법에 대해 설명합니다.

Snowflake 계정과 Git 리포지토리 통합

Git 리포지토리와의 통합을 설정하는 방법에 대한 자세한 내용은 Git을 사용하기 위해 Snowflake 설정하기 섹션을 참조하십시오.

리포지토리에서 리포지토리 스테이지 새로 고침

원격 리포지토리에서 모든 분기, 태그, 커밋을 가져오는 전체 복제본을 사용하여 리포지토리 스테이지를 새로 고칠 수 있습니다. 이렇게 하면 이전에 가져왔지만 원격 저장소에 더 이상 존재하지 않는 분기와 커밋도 제거됩니다.

이 섹션에 설명된 작업을 수행하려면 ALTER GIT REPOSITORY의 액세스 제어 에 설명된 Snowflake 액세스가 필요합니다.

Snowsight 또는 SQL 중 하나를 사용하여 리포지토리 스테이지를 새로 고칠 수 있습니다.

리포지토리 스테이지를 새로 고치려면 ALTER GIT REPOSITORY 명령을 사용하여 통합 Git 리포지토리의 내용을 리포지토리 스테이지로 가져올 수 있습니다.

다음 예제의 코드는 리포지토리 스테이지를 리포지토리의 내용으로 업데이트합니다.

ALTER GIT REPOSITORY snowflake_extensions FETCH;
Copy

리포지토리 분기 또는 태그 목록 보기

리포지토리 스테이지에서 Git 리포지토리의 복제본을 나타내는 분기와 태그 목록을 볼 수 있습니다.

이 섹션에 설명된 작업을 수행하려면 다음 항목에 설명된 Snowflake 액세스 권한이 필요합니다.

Snowsight 또는 SQL 중 하나를 사용하여 분기 또는 태그 목록을 볼 수 있습니다.

SHOW GIT BRANCHESSHOW GIT TAGS 를 사용하여 분기와 태그를 볼 수 있습니다.

다음 예제는 Git 리포지토리 snowflake_extensions 에 있는 분기를 나열하는 출력을 생성합니다.

SHOW GIT BRANCHES IN snowflake_extensions;
Copy

위 명령은 다음과 유사한 출력을 생성합니다.

--------------------------------------------------------------------------------
| name | path           | checkouts | commit_hash                              |
--------------------------------------------------------------------------------
| main | /branches/main |           | 0f81b1487dfc822df9f73ac6b3096b9ea9e42d69 |
--------------------------------------------------------------------------------

리포지토리 파일 목록 보기

Snowsight 또는 SQL 중 하나를 사용하여 분기, 태그 또는 커밋의 파일 목록을 볼 수 있습니다.

다음 형식의 LIST 명령을 사용하여 리포지토리에 있는 파일 목록을 볼 수 있습니다(LIST를 LS로 축약할 수 있음).

  • 분기 이름별 나열:

    LS @repository_stage_name/branches/branch_name;
    
    Copy
  • 태그 이름별 나열:

    LS @repository_stage_name/tags/tag_name;
    
    Copy
  • 커밋 해시별 나열:

    LS @repository_stage_name/commits/commit_hash;
    
    Copy

다음 예제는 Git 리포지토리 snowflake_extensions 의 기본 분기에 있는 파일을 나열하는 출력을 생성합니다.

LS @snowflake_extensions/branches/main;
Copy

위 명령은 다음과 유사한 출력을 생성합니다.

-------------------------------------------------------------------------------------------------------------------------------------------------------
| name                                                         | size | md5 | sha1                                     | last_modified                |
-------------------------------------------------------------------------------------------------------------------------------------------------------
| snowflake_extensions/branches/main/.gitignore                | 10   |     | e43b0f988953ae3a84b00331d0ccf5f7d51cb3cf | Wed, 5 Jul 2023 22:42:34 GMT |
-------------------------------------------------------------------------------------------------------------------------------------------------------
| snowflake_extensions/branches/main/python-handlers/filter.py | 169  |     | c717137b18d7b75005849d76d89037fafc7b5223 | Wed, 5 Jul 2023 22:42:34 GMT |
-------------------------------------------------------------------------------------------------------------------------------------------------------

리포지토리 스테이지 속성 보기

리포지토리 스테이지와 관련된 속성을 볼 수 있습니다.

이 섹션에 설명된 작업을 수행하려면 DESC GIT REPOSITORY의 액세스 제어 에 설명된 Snowflake 액세스가 필요합니다.

Snowsight 또는 SQL 중 하나를 사용하여 리포지토리 스테이지 속성을 볼 수 있습니다.

SQL 명령 SHOW GIT REPOSITORIESDESCRIBE GIT REPOSITORY 를 사용하여 리포지토리 스테이지 속성을 볼 수 있습니다.

속성 정보에는 원격 리포지토리와의 연결을 위해 사용되는 Git 소스 URL, API 통합 이름 및 자격 증명(시크릿 으로 지정됨) 등이 포함됩니다.

DESCRIBE GIT REPOSITORY snowflake_extensions;
Copy

위 명령은 다음과 유사한 출력을 생성합니다.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| CREATED_ON                    | NAME                 | DATABASE_NAME | SCHEMA_NAME | ORIGIN                                                 | API_INTEGRATION     | GIT_CREDENTIALS           | OWNER        | OWNER_ROLE_TYPE | COMMENT |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-06-28 08:46:10.886 -0700 | SNOWFLAKE_EXTENSIONS | MY_DB         | MAIN        | https://github.com/my-account/snowflake-extensions.git | GIT_API_INTEGRATION | MY_DB.MAIN.GIT_SECRET     | ACCOUNTADMIN | ROLE            |         |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

리포지토리의 코드 실행

리포지토리에 있는 파일에 포함된 코드를 실행할 수 있습니다.

이 섹션에 설명된 작업을 수행하려면 EXECUTE IMMEDIATE FROM의 액세스 제어 에 설명된 Snowflake 액세스가 필요합니다.

Snowsight 또는 SQL 중 하나를 사용하여 코드를 실행할 수 있습니다.

EXECUTE IMMEDIATE FROM 을 사용하여 리포지토리 스테이지에서 코드를 실행할 수 있습니다.

다음 예제의 코드는 리포지토리 스테이지 snowflake_extensions 에서 create-database.sql 의 코드를 실행합니다.

EXECUTE IMMEDIATE FROM @snowflake_extensions/branches/main/sql/create-database.sql;
Copy

리포지토리 기반 코드를 워크시트에 복사

리포지토리 파일의 코드를 워크시트로 빠르게 복사할 수 있습니다. 복사한 코드를 편집하고 실행하거나 다른 사용자를 위한 읽기 전용 템플릿으로 사용할 수 있습니다.

다음 유형의 .sql.py 파일의 내용을 복사할 수 있습니다.

리포지토리에서 변경 사항을 저장하려면 워크시트에서 편집한 코드를 로컬 Git 리포지토리의 파일(예: 복사한 파일에 해당하는 파일)에 복사한 다음 해당 파일에서 변경 사항을 커밋해야 합니다.

Snowsight:

Snowsight 를 사용하여 리포지토리에 있는 파일에서 워크시트로 콘텐츠를 복사할 수 있습니다.

  1. Snowsight 에 로그인합니다.

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

  3. 오브젝트 탐색기에서 확인할 Git 리포지토리 스테이지가 포함된 데이터베이스와 스키마를 선택합니다.

  4. 스키마 내부에서 Git Repositories 를 엽니다.

  5. Git Repositories 에서, 리포지토리를 선택하여 세부 정보 페이지를 확인합니다.

  6. 리포지토리의 세부 정보 페이지의 Files Explorer 탭에서 Branch 버튼을 선택합니다.

  7. Branch 드롭다운 메뉴에서 다음 중 하나를 수행합니다.

    • 리포지토리에서 복제된 분기 목록을 보려면 Branches 를 선택합니다.

    • 리포지토리에서 복제된 태그 목록을 보려면 Tags 를 선택합니다.

  8. 복사할 코드가 들어 있는 분기나 태그를 선택합니다.

  9. 리포지토리 이름 아래에서 실행하려는 파일이 있는 폴더를 선택합니다.

  10. 실행할 코드가 있는 파일을 찾아 추가 옵션 » Copy into worksheet 를 선택합니다.

    Snowflake가 선택한 파일의 코드를 새 워크시트에 복사합니다.