SnowConvert AI - 이름 바꾸기 기능¶
데이터베이스 마이그레이션 프로세스 중에 오브젝트 이름 바꾸기는 많은 사용자가 필요로 하는 작업입니다. 이러한 이유로, SnowConvert AI는 다음 유형의 사용자 정의 오브젝트에 대한 새 이름을 정의할 수 있도록 이름 바꾸기 기능을 지원합니다.
참고
이 기능은 Teradata, Sql Server 및 Redshift에서만 지원됩니다.
스키마
테이블
뷰
구체화된 뷰
프로시저
함수
매크로
참고
이름 바꾸기 기능은 오브젝트 정의와 오브젝트의 용도 모두에 적용됩니다.
이러한 오브젝트는 일반적으로 스키마 또는 데이터베이스 내에서 한정되므로 데이터베이스 플랫폼에 따라 Table1 오브젝트는 Table1, MySchema.Table1 또는 MyDatabase.MySchema.Table1 로 간단히 참조될 수 있습니다. 모호함을 피하기 위해 이름 바꾸기 파일에서 각 오브젝트를 완전히 지정하는 것이 필수 입니다.
새 오브젝트 이름은 다음 형식의 .json 파일을 통해 지정됩니다.
참고
이 예제에는 “Macros” 섹션이 포함되어 있고, 이는 Teradata 특정 요소이며 지정된 언어에 따라 달라질 수 있습니다.
사용법¶
이름 바꾸기 기능을 사용하려면 --RenamingFile 인자와 함께 SnowConvert AI의 CLI 버전을 실행하고 이름 바꾸기 정보가 포함된 .json 파일의 경로를 제공해야 합니다. 명령의 예는 다음과 같습니다.
snowct.exe -i “somePath/input” -o “somePath/output” –RenamingFile “somePath/renamings.json”
모드 이름 바꾸기¶
각 종류의 오브젝트에 대해 "Tables" 및 "TablesRegex", "Views" 및 "ViewsRegex" 등 2개의 필드가 있음을 알 수 있습니다. 이는 이름 바꾸기을 지정할 수 있는 두 가지 방법이 있기 때문입니다.
오브젝트별(라인별)¶
이 모드에서 각 라인은 오브젝트를 나타내며, 원래 정규화된 이름과 새 이름을 포함해야 합니다. 따라서 스키마 “OriginalSchema” 내부의 “Table1”이라는 오브젝트를 스키마 _”SchemaSF”_로 이동하려면 다음과 같이 라인을 작성해야 합니다.
또한 이름을 “Table2”로 변경하려면 다음과 같이 라인을 작성해야 합니다.
이 정보는 .json 파일의 "Tables", "Views", "Procedures", "Macros" 및 "Functions" 섹션에 지정해야 하며 각 줄은 쉼표로 구분해야 합니다. 한 가지 예를 살펴보겠습니다.
TableExample1
위의 샘플은 전체 워크로드에서 이름을 변경해야 하는 테이블은 “Table1”, “Table2”, “Table3”라는 3개뿐이며, 모두 “Schema1” 스키마 내에 위치한다는 것을 말하고 있습니다. 각각 “SF_Table1”, “SF_Table2” and “SF__Table3”,_로 이름을 변경해야 하며, 최종적으로는 Snowflake의 “SF_Schema1” 스키마 아래에 위치하게 됩니다.
정규식¶
여러 오브젝트의 이름을 같은 방식으로 변경해야 하는 경우, 이 기능을 사용하면 정규식으로 같은 종류의 오브젝트에 적용할 패턴을 정의할 수도 있습니다. 각 이름 변경을 지정하려면 두 줄이 필요하며, 첫 번째 줄은 일치하는 식인 "RegexExpr", 두 번째 줄은 바꾸는 식인 "RegexReplace" 입니다. 이 정보는 .json 파일의 "TablesRegex", "ViewsRegex", "ProceduresRegex", "MacrosRegex" 및 "FunctionsRegex" 섹션에 제공해야 합니다. 따라서 앞의 예제는 정규식 기능을 사용하여 다음과 같은 방식으로 작성할 수도 있습니다.
TableExample2
유일한 차이점은 이 방식이 “Schema1” 스키마 내에 위치한 모든 테이블에 적용된다는 점입니다. 이 정규식 식은 “Schema1” 스키마에 정의된 모든 테이블과 일치하며 점 뒤에 오는 모든 항목이 포함된 캡처 그룹을 생성합니다. 정규식 바꾸기는 테이블을 “SF_Schema1” 스키마로 이동하고 정규식 식에서 생성된 첫 번째 그룹($1)을 참조하는 모든 테이블에 “SF_” 접두사를 추가합니다.
우선순위 이름 바꾸기¶
여러 개의 이름 바꾸기가 동일한 오브젝트에 적용될 수 있으며 그중 하나만 선택됩니다. 동일한 섹션 내에서, SnowConvert AI는 현재 오브젝트의 이름과 일치하는 첫 번째 이름 바꾸기를 적용하고 해당 오브젝트의 이름 바꾸기 시도를 중지합니다. 따라서 다음 예에서는 "Tables" 섹션에서 “Table1”의 이름을 “Table1-a” 및 “Table1-b”로 바꾸도록 지정했음에도 SnowConvert AI는 이름을 “Table1-a”로만 바꿉니다.
또한, SnowConvert AI는 정규식 섹션을 시도하기 전에 오브젝트 이름 바꾸기 섹션을 통해 오브젝트를 먼저 확인하고 오브젝트 이름 바꾸기를 시도합니다. 따라서 다음 예에서는 두 이름 바꾸기가 모두 동일한 오브젝트 “Schema1.Table1”에 적용될 수 있음에도 불구하고 "Tables" 섹션에 정의된 이름 바꾸기만 적용됩니다.
예¶
다음과 같은 입력 코드가 있다고 가정해 보겠습니다.
Input Code
및 다음과 같은 이름 변경 정보
파일 이름 바꾸기(.JSON)
이는 이름 바꾸기이 있는 경우와 없는 경우의 출력 코드입니다.
Snowflake 출력 코드¶
“CLIENT”에 대한 모든 참조가 “USER “로 이름이 변경된 것을 확인합니다