AWS Redshift에서 SQL Server에서 DBLink 연결 확인
목적
"현재 SQL Server를 사용하는 시스템이 AWS Redshift의 데이터 소스를 참조하기 때문에 SQL Server에서 Redshift 로의 DBLink 연결을 수행하여 데이터 참조가 가능한지 확인합니다.
검증 결과
검증 절차
Redshift 구축
순서대로 구축해 본다.
구축시의 포인트
pgAdmin
SQL Server 빌드
RDS/SQL Server는 Link Server 작성 권한이 없으므로 EC2에 구축해야합니다.
Microsoft SQL Server Express Edition(64비트)
ODBC 데이터 소스 만들기
포스 그레의 경우이지만 참고 자료 SQL Server and PostgreSQL Linked Server Configuration - Part 2
SqlServer에 링크 서버 만들기
EXEC master.dbo.sp_addlinkedserver
@server = N'REDSHIFT', --リンクサーバ 名
@srvproduct=N'AWS Redshift',
@provider=N'MSDASQL',
@datasrc=N'MyRedshift' -- データソース
EXEC master.dbo.sp_addlinkedsrvlogin
@rmtsrvname=N'REDSHIFT',
@useself=N'False',
@locallogin=NULL,
@rmtuser=NULL,
@rmtpassword=NULL
SQL Server에서 OpenSql을 통해 View를 만들고 Select 할 수 있는지 확인
위 Redshift의 Getting Started에서 Create, Copy하는 테이블을 예로 한다.
Create view [dbo].[viw_users]
(
userid ,
username ,
firstname,
lastname,
city,
state,
email,
phone ,
likesports,
liketheatre,
likeconcerts,
likejazz,
likeclassical,
likeopera,
likerock,
likevegas,
likebroadway,
likemusicals
) as select * from openquery ([REDSHIFT],'select * from [dev].[public].[users]')
select top 10 * from viw_users
문제: 링크 서버를 직접 선택하지 못함 - (40470) Conversion error
select * from [REDSHIFT].[dev].[public].[users]
select * from [REDSHIFT].[dev].[public].[venue]
select * from [REDSHIFT].[dev].[public].[category]
select * from [REDSHIFT].[dev].[public].[date]
select * from [REDSHIFT].[dev].[public].[listing]
select * from [REDSHIFT].[dev].[public].[sales]
リンク サーバー "REDSHIFT" の OLE DB プロバイダー "MSDASQL" から、メッセージ "エラーを特定できません" が返されました。
リンク サーバー "REDSHIFT" の OLE DB プロバイダー "MSDASQL" から、メッセージ "[Amazon][Support] (40470) Conversion error at column 16 and row 1: Numeric value out of range." が返されました。
メッセージ 7311、レベル 16、状態 2、行 1
リンク サーバー "REDSHIFT" の OLE DB プロバイダー "MSDASQL" のスキーマ行セット "DBSCHEMA_COLUMNS" を取得できません。プロバイダーはインターフェイスをサポートしていますが、インターフェイス使用時にエラー コードが返されました。
※ 동의어 경유에서도 변함없이
create synonym [dbo].[s_users] FOR [REDSHIFT].[dev].[public].[users]
select * from [s_users]
대응:OpenQuery 경유라 할 수 있다
select * from OPENQUERY([REDSHIFT],'select * from [dev].[public].[users]')
select * from OPENQUERY([REDSHIFT],'select * from [dev].[public].[venue]')
select * from OPENQUERY([REDSHIFT],'select * from [dev].[public].[category]')
select * from OPENQUERY([REDSHIFT],'select * from [dev].[public].[date]')
select * from OPENQUERY([REDSHIFT],'select * from [dev].[public].[listing]')
select * from OPENQUERY([REDSHIFT],'select * from [dev].[public].[sales]')
참고 링크
Amazon Redshift에서 사용할 수있는 PostgreSQL 관리 도구를 몇 가지 시험해 보았습니다 | Developers.IO
【AWS】Amazon Redshift의 클러스터 생성과 시작부터 연결까지의 방법(입문편) - TASK NOTES
Reference
이 문제에 관하여(AWS Redshift에서 SQL Server에서 DBLink 연결 확인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/saitotak/items/cb75a12b5dc441a815ff
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(AWS Redshift에서 SQL Server에서 DBLink 연결 확인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/saitotak/items/cb75a12b5dc441a815ff텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)