Babelfish 시스템 카탈로그에서 정보 얻기
SQL Server에서 사용되는 것과 동일한 여러 시스템 뷰를 쿼리하여 Babelfish 클러스터에 저장된 데이터베이스 객체에 대한 정보를 얻을 수 있습니다. Babelfish의 새로운 릴리스마다 더 많은 시스템 뷰를 지원합니다. 현재 사용할 수 있는 뷰 목록은 SQL Server system catalog views 테이블을 참조하세요.
이러한 시스템 뷰는 시스템 카탈로그(sys.schemas
)의 정보를 제공합니다. Babelfish의 경우 이러한 뷰에는 SQL Server 및 PostgreSQL 시스템 스키마가 모두 포함되어 있습니다. Babelfish에서 시스템 카탈로그 정보를 쿼리하려면 다음 예와 같이 TDS 포트 또는 PostgreSQL 포트를 사용할 수 있습니다.
sqlcmd
를 사용하여 T-SQL 포트를 쿼리하거나 다른 SQL Server 클라이언트를 쿼리합니다.1>
SELECT * FROM sys.schemas2>
GO이 쿼리는 다음과 같이 SQL Server 및 Aurora PostgreSQL 시스템 스키마를 반환합니다.
name --------------------------------------------------------- demographic_dbo public sys master_dbo tempdb_dbo ...
psql
또는pgAdmin
을 사용하여 PostgreSQL 포트를 쿼리합니다. 이 예에서는psql
목록 스키마 메타 명령(\dn
)을 사용합니다.babelfish_db=>
\dn쿼리는
sqlcmd
에서 T-SQL 포트에 반환한 것과 동일한 결과 세트를 반환합니다.List of schemas Name ------------------------------ demographic_dbo public sys master_dbo tempdb_dbo ...
Babelfish에서 사용할 수 있는 SQL Server 시스템 카탈로그
다음 테이블에서는 Babelfish에 현재 구현된 SQL Server 뷰를 확인할 수 있습니다. SQL Server의 시스템 카탈로그에 대한 자세한 내용은 Microsoft 설명서의 시스템 카탈로그 뷰(Transact-SQL)
뷰 이름 | 설명 또는 Babelfish 제한(있는 경우) |
---|---|
|
모든 테이블 및 뷰의 모든 열 |
|
모든 스키마의 모든 객체 |
|
|
|
모든 스키마의 모든 뷰 |
|
사용자 정의 테이블 및 뷰의 모든 열 |
|
Babelfish 지원은 단일 읽기 전용 구성으로 제한됩니다. |
|
각 데이터 공간에 대한 행이 포함됩니다. 파일 그룹, 파티션 구성표 또는 FILESTREAM 데이터 파일 그룹이 될 수 있습니다. |
|
데이터베이스 자체에 저장된 데이터베이스의 각 파일에 대해 하나의 행이 포함된 데이터베이스별 뷰입니다. |
|
자세한 내용은 Microsoft Transact-SQL 설명서의 sys.database_mirroring |
|
자세한 내용은 Microsoft Transact-SQL 설명서의 sys.database_principals |
|
자세한 내용은 Microsoft Transact-SQL 설명서의 sys.database_role_members |
|
모든 스키마의 모든 데이터베이스 |
|
자세한 내용은 Microsoft Transact-SQL 설명서의 sys.dm_exec_connections |
|
자세한 내용은 Microsoft Transact-SQL 설명서의 sys.dm_exec_sessions |
|
자세한 내용은 Microsoft Transact-SQL 설명서의 sys.dm_hadr_database_replica_states |
|
자세한 내용은 Microsoft Transact-SQL 설명서의 sys.dm_os_host_info |
|
자세한 내용은 Microsoft Transact-SQL 설명서의 sys.endpoints |
|
자세한 내용은 Microsoft Transact-SQL 설명서의 sys.indexes |
|
자세한 내용은 Microsoft Transact-SQL 설명서의 sys.languages |
|
모든 스키마 |
|
모든 로그인 및 역할 |
|
자세한 내용은 Microsoft Transact-SQL 설명서의 sys.sql_modules |
|
Babelfish 지원은 단일 읽기 전용 구성으로 제한됩니다. |
|
Babelfish 지원은 단일 읽기 전용 구성으로 제한됩니다. |
|
자세한 내용은 Microsoft Transact-SQL 설명서의 sys.sysprocesses |
|
자세한 내용은 Microsoft Transact-SQL 설명서의 sys.system_sql_modules |
|
자세한 내용은 Microsoft Transact-SQL 설명서의 sys.table_types |
|
스키마의 모든 테이블 |
|
자세한 내용은 Microsoft Transact-SQL 설명서의 sys.xml_schema_collections |
PostgreSQL은 SQL Server 객체 카탈로그 뷰와 유사한 시스템 카탈로그를 구현합니다. 전체 시스템 카탈로그 목록은 PostgreSQL 설명서의 시스템 카탈로그
Babelfish에서 지원되는 DDL 내보내기
Babelfish 2.4.0 및 3.1.0 버전의 경우 Babelfish는 다양한 도구에서 DDL 내보내기를 지원합니다. 예를 들어, SQL Server Management Studio(SSMS)에서 이 기능을 사용하여 Babelfish for Aurora PostgreSQL 데이터베이스의 다양한 객체에 대한 데이터 정의 스크립트를 생성할 수 있습니다. 그런 다음, 이 스크립트에서 생성된 DDL 명령을 사용하여 다른 Babelfish for Aurora PostgreSQL 또는 SQL Server 데이터베이스에서 동일한 객체를 생성할 수 있습니다.
Babelfish는 지정된 버전에서 다음과 같은 객체에 대한 DDL 내보내기를 지원합니다.
객체 목록 | 2.4.0 | 3.1.0 |
---|---|---|
사용자 테이블 | 예 | 예 |
기본 키 | 예 | 예 |
외래 키 | 예 | 예 |
고유한 제약 조건 | 예 | 예 |
인덱스 | 예 | 예 |
제약 조건 확인 | 예 | 예 |
보기 | 예 | 예 |
저장 프로시저 | 예 | 예 |
사용자 정의 함수 | 예 | 예 |
테이블 값 함수 | 예 | 예 |
트리거 | 예 | 예 |
사용자 정의 데이터 형식 | 아니요 | 아니요 |
사용자 정의 테이블 유형 | 아니요 | 아니요 |
사용자 | 아니요 | 아니요 |
로그인 | 아니요 | 아니요 |
시퀀스 | 아니요 | 아니요 |
역할 | 아니요 | 아니요 |
내보낸 DDL의 제한 사항
-
내보낸 DDL을 사용하여 객체를 다시 생성하기 전에 이스케이프 해치 사용 - Babelfish는 내보낸 DDL 스크립트의 모든 명령을 지원하지는 않습니다. Babelfish의 DDL 명령에서 객체를 다시 생성할 때 발생하는 오류를 방지하려면 이스케이프 해치를 사용하세요. 이스케이프 해치에 대한 자세한 내용은 이스케이프 해치를 사용하여 Babelfish 오류 처리 관리 단원을 참조하세요.
-
명시적 COLLATE 절과 함께 CHECK 제약 조건을 포함하는 객체 - SQL Server 데이터베이스에서 생성된 이러한 객체가 포함된 스크립트는 Babelfish 데이터베이스와 같이 서로 형태는 다르지만 동일한 데이터 정렬을 사용합니다. 예를 들어 sql_latin1_general_cp1_cs_as, sql_latin1_general_cp1251_cs_as 및 latin1_general_cs_as 같은 몇 가지 데이터 정렬은 가장 가까운 Windows 데이터 정렬인 latin1_general_cs_as로 생성됩니다.