OPENROWSET(DMX)
원본 데이터 쿼리를 외부 공급자에 대한 쿼리로 바꿉니다. INSERT, SELECT FROM PREDICTION JOIN 및 SELECT FROM NATURAL PREDICTION JOIN 문은 OPENROWSET을 지원합니다. 공급자별 구문에 대한 자세한 내용은 OPENROWSET(Transact-SQL)을 참조하십시오.
구문
OPENROWSET(provider_name,provider_string,query_syntax)
인수
provider_name
OLE DB 공급자 이름입니다.provider_string
지정한 공급자에 대한 OLE DB 연결 문자열입니다.query_syntax
행 집합을 반환하는 쿼리 구문입니다.
주의
Analysis Services 서버에 속성을 설정하여 OPENROWSET을 사용하는 임시 쿼리를 활성화할 수 있습니다. 그러나 OPENQUERY를 대신 사용하는 것이 좋습니다. OPENROWSET 사용자가 데이터 마이닝 태스크와 무관한 데이터베이스 테이블을 볼 수 있기 때문에 OPENQUERY로 사용자가 액세스할 수 있는 데이터 원본을 제어할 수 있습니다.
임시 OPENROWSET 쿼리를 활성화할 경우 제공자 ID를 지정하여 서버 및 데이터베이스 연결을 인스턴스화하는 데 사용할 수 있는 제공자를 제한해야 합니다. 자세한 내용은 데이터 마이닝 속성을 참조하십시오.
OPENROWSET에 대한 정확한 구문은 지정하는 제공자에 따라 다릅니다. 대개 데이터 마이닝 공급자는 provider_name 및 provider_string을 사용하여 데이터 원본 개체에 연결하고 query_syntax에 지정된 쿼리를 실행하여 원본 데이터에서 행 집합을 검색합니다.
예
다음 예에서는 Transact-SQL SELECT 문을 사용하여 AdventureWorksDW2008 데이터베이스의 ProspectiveBuyers 테이블에서 데이터를 검색하고 각 새 고객에 대한 클러스터를 예측하는 PREDICTION JOIN 문을 보여 줍니다.
사용자 ID DMUser는 새 고객 저장에 사용되는 데이터 테이블에 대한 읽기 전용 권한을 가진 SQL 로그인입니다. OPENROWSET에서는 암호가 일반 텍스트로 표시되기 때문에 보안상 위험할 수 있습니다. 따라서 OPENQUERY를 대신 사용하여 가능한 최저 액세스 수준으로 관계형 데이터 원본의 보안을 설정하는 것이 좋습니다.
OPENROWSET 문의 SELECT 절에 있는 처음 3개의 필드는 모델의 예측에 사용되지 않지만 고객을 식별하는 데 유용합니다. 예측에 사용되는 모든 열을 ON 절에 추가하여 모델의 입력 열에 매핑해야 합니다.
SELECT
t.[ProspectiveBuyerKey], t.[LastName], t.[FirstName],
Cluster()
FROM
[TM_Clustering]
PREDICTION JOIN
OPENROWSET('SQLOLEDB','localhost';'DMUser';'&IZqw3x&',
'SELECT
[ProspectiveBuyerKey], [FirstName],[LastName],
[MaritalStatus],
[Gender],
[YearlyIncome],
[TotalChildren],
[NumberChildrenAtHome],
[HouseOwnerFlag],
[NumberCarsOwned]
FROM
[AdventureWorksDW2008].[dbo].[ProspectiveBuyer]
') AS t
ON
[TM_Clustering].[Marital Status] = t.[MaritalStatus] AND
[TM_Clustering].[Gender] = t.[Gender] AND
[TM_Clustering].[Yearly Income] = t.[YearlyIncome] AND
[TM_Clustering].[Total Children] = t.[TotalChildren] AND
[TM_Clustering].[Number Children At Home] = t.[NumberChildrenAtHome] AND
[TM_Clustering].[House Owner Flag] = t.[HouseOwnerFlag] AND
[TM_Clustering].[Number Cars Owned] = t.[NumberCarsOwned]
예 결과: