적용 대상: Azure Data Factory
Azure Synapse Analytics
팁
기업용 올인원 분석 솔루션인 Microsoft Fabric의 Data Factory를 사용해 보세요. Microsoft Fabric은 데이터 이동부터 데이터 과학, 실시간 분석, 비즈니스 인텔리전스 및 보고에 이르기까지 모든 것을 다룹니다. 무료로 새 평가판을 시작하는 방법을 알아보세요!
이 문서에서는 Azure Data Factory 또는 Synapse Analytics 파이프라인에서 복사 작업을 사용하여 Hive에서 데이터를 복사하는 방법을 간략하게 설명합니다. 이 문서는 복사 작업에 대한 일반적인 개요를 제공하는 복사 작업 개요 문서를 기반으로 합니다.
중요합니다
Hive 커넥터 버전 2.0은 향상된 네이티브 Hive 지원을 제공합니다. 솔루션에서 Hive 커넥터 버전 1.0을 사용하는 경우 2025년 9월 30일 이전에 Hive 커넥터를 업그레이드하세요. 버전 2.0과 버전 1.0의 차이점에 대한 자세한 내용은 이 섹션 을 참조하세요.
지원되는 기능
이 Hive 커넥터는 다음 기능에 대해 지원됩니다.
지원되는 기능 | 적외선 |
---|---|
복사 작업(원본/-) | (1) (2) |
매핑 데이터 흐름(원본/-) | ① |
조회 작업 | (1) (2) |
① Azure Integration Runtime ② 자체 호스팅 통합 런타임
복사 작업의 원본/싱크로 지원되는 데이터 저장소 목록은 지원되는 데이터 저장소 표를 참조하세요.
이 서비스는 연결을 사용하는 기본 제공 드라이버를 제공합니다. 따라서 이 커넥터를 사용하여 드라이버를 수동으로 설치하지 않아도 됩니다.
커넥터는 이 문서에 나와 있는 Windows 버전을 지원합니다.
필수 구성 요소
데이터 저장소가 온-프레미스 네트워크, Azure 가상 네트워크 또는 Amazon Virtual Private Cloud 내에 있는 경우 자체 호스팅된 통합 런타임을 구성하여 연결해야 합니다.
데이터 저장소가 관리형 클라우드 데이터 서비스인 경우 Azure Integration Runtime을 사용할 수 있습니다. 액세스가 방화벽 규칙에서 승인된 IP로 제한되는 경우 허용 목록에 Azure Integration Runtime IP를 추가할 수 있습니다.
또한 Azure Data Factory의 관리형 가상 네트워크 통합 런타임 기능을 사용하면 자체 호스팅 통합 런타임을 설치하고 구성하지 않고도 온-프레미스 네트워크에 액세스할 수 있습니다.
Data Factory에서 지원하는 네트워크 보안 메커니즘 및 옵션에 대한 자세한 내용은 데이터 액세스 전략을 참조하세요.
비고
버전 2.0은 자체 호스팅 통합 런타임 버전 5.54 이상에서 지원됩니다.
시작
파이프라인에 복사 작업을 수행하려면 다음 도구 또는 SDK 중 하나를 사용하면 됩니다.
UI를 사용하여 Hive에 연결된 서비스 만들기
다음 단계를 사용하여 Azure Portal UI에서 Hive에 연결된 서비스를 만듭니다.
Azure Data Factory 또는 Synapse 작업 영역에서 관리 탭으로 이동하고 연결된 서비스를 선택한 다음 새로 만들기를 클릭합니다.
Hive를 검색하고 Hive 커넥터를 선택합니다.
서비스 세부 정보를 구성하고 연결을 테스트하고 새 연결된 서비스를 만듭니다.
커넥터 구성 세부 정보
다음 섹션에서는 Hive 커넥터에 한정된 Data Factory 엔터티를 정의하는 데 사용되는 속성에 대해 자세히 설명합니다.
연결된 서비스 속성
Hive 커넥터는 이제 버전 2.0을 지원합니다. 버전 1.0에서 Hive 커넥터 버전을 업그레이드하려면 이 섹션 을 참조하세요. 속성 세부 정보는 해당 섹션을 참조하세요.
버전 2.0
Hive 연결된 서비스는 버전 2.0을 적용할 때 다음 속성을 지원합니다.
속성 | 설명 | 필수 |
---|---|---|
유형 | type 속성은 Hive로 설정해야 합니다. | 예 |
버전 | 지정한 버전입니다. 값은 2.0 입니다. |
예 |
주최자 / 호스트 | Hive 서버의 IP 주소 또는 호스트 이름입니다. | 예 |
항구 | Hive 서버가 클라이언트 연결을 수신하는 데 사용하는 TCP 포트입니다. Azure HDInsight에 연결하는 경우 포트를 443으로 지정합니다. | 예 |
serverType | Hive 서버의 유형입니다. 허용되는 값은 HiveServer2입니다. |
아니요 |
thriftTransportProtocol | Thrift 계층에서 사용할 전송 프로토콜입니다. 허용되는 값은 이진, SASL, HTTP입니다. |
아니요 |
인증유형 | Hive 서버에 액세스하는 데 사용되는 인증 방법입니다. 허용되는 값은 Anonymous, UsernameAndPassword, WindowsAzureHDInsightService입니다. Kerberos 인증은 현재 지원되지 않습니다. |
예 |
사용자 이름 | Hive 서버에 액세스하는 데 사용하는 사용자 이름입니다. | 아니요 |
암호 | 사용자에 해당하는 암호입니다. 이 필드를 SecureString으로 표시하여 안전하게 저장하거나, Azure Key Vault에 저장된 비밀을 참조합니다. | 아니요 |
httpPath | Hive 서버에 해당하는 부분 URL입니다. WindowsAzureHDInsightService 인증 유형의 경우 기본값은 .입니다 /hive2 . |
아니요 |
enableSsl (SSL 활성화) | TLS를 사용하여 서버 연결을 암호화할지 여부를 지정합니다. 기본값은 true입니다. | 아니요 |
서버 인증서 유효성 검사를 활성화하다 | 연결할 때 서버 SSL 인증서 유효성 검사를 사용하도록 설정할지 여부를 지정합니다. 항상 시스템 신뢰 저장소를 사용합니다. 기본값은 true입니다. | 아니요 |
스토리지 레퍼런스 | 매핑 데이터 흐름에서 데이터를 준비하는 데 사용되는 스토리지 계정의 연결된 서비스에 대한 참조입니다. 이는 매핑 데이터 흐름에서 Hive 연결된 서비스를 사용하는 경우에만 필요합니다. | 아니요 |
커넥트비아 | 데이터 저장소에 연결하는 데 사용할 Integration Runtime입니다. 필수 조건 섹션에서 자세히 알아보세요. 지정하지 않으면 기본 Azure Integration Runtime을 사용합니다. 자체 호스팅 통합 런타임을 사용할 수 있으며 해당 버전은 5.54 이상이어야 합니다. | 아니요 |
예:
{
"name": "HiveLinkedService",
"properties": {
"type": "Hive",
"version": "2.0",
"typeProperties": {
"host" : "<host>",
"port" : "<port>",
"authenticationType" : "WindowsAzureHDInsightService",
"username" : "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
},
"serverType": "HiveServer2",
"thriftTransportProtocol": "HTTP",
"enableSsl": true,
"enableServerCertificateValidation": true
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
버전 1.0
다음 속성은 버전 1.0을 적용할 때 Hive 연결된 서비스에 대해 지원됩니다.
속성 | 설명 | 필수 |
---|---|---|
유형 | type 속성은 Hive로 설정해야 합니다. | 예 |
주최자 / 호스트 | Hive 서버의 IP 주소 또는 호스트 이름으로, 호스트가 여러 개인 경우 ‘,’로 구분합니다(serviceDiscoveryMode가 사용되는 경우에만 해당). | 예 |
항구 | Hive 서버가 클라이언트 연결을 수신하는 데 사용하는 TCP 포트입니다. Azure HDInsight에 연결하는 경우 포트를 443으로 지정합니다. | 예 |
serverType | Hive 서버의 유형입니다. 허용되는 값은 HiveServer1, HiveServer2, HiveThriftServer입니다. |
아니요 |
thriftTransportProtocol | Thrift 계층에서 사용할 전송 프로토콜입니다. 허용되는 값은 Binary, SASL, HTTP입니다. |
아니요 |
인증유형 | Hive 서버에 액세스하는 데 사용되는 인증 방법입니다. 허용되는 값은 Anonymous, Username, UsernameAndPassword, WindowsAzureHDInsightService입니다. Kerberos 인증은 현재 지원되지 않습니다. |
예 |
serviceDiscoveryMode | true이면 ZooKeeper 서비스 사용을 나타내고, false이면 그렇지 않습니다. | 아니요 |
zooKeeperNameSpace | ZooKeeper에서 Hive 서버 2 노드가 추가되는 네임스페이스입니다. | 아니요 |
네이티브 쿼리 사용 | 드라이버가 네이티브 HiveQL 쿼리를 사용할지 또는 HiveQL에서 동일한 형식으로 변환할지를 지정합니다. | 아니요 |
사용자 이름 | Hive 서버에 액세스하는 데 사용하는 사용자 이름입니다. | 아니요 |
암호 | 사용자에 해당하는 암호입니다. 이 필드를 SecureString으로 표시하여 안전하게 저장하거나, Azure Key Vault에 저장된 비밀을 참조합니다. | 아니요 |
httpPath | Hive 서버에 해당하는 부분 URL입니다. | 아니요 |
enableSsl (SSL 활성화) | TLS를 사용하여 서버 연결을 암호화할지 여부를 지정합니다. 기본값은 False입니다. | 아니요 |
신뢰할 수 있는 인증서 경로 | TLS를 통해 연결할 때 서버를 확인하는 데 사용되는 신뢰할 수 있는 CA 인증서를 포함하는 .pem 파일의 전체 경로입니다. 이 속성은 자체 호스팅 IR에서 TLS를 사용하는 경우에만 설정할 수 있습니다. 기본값은 IR과 함께 설치된 cacerts.pem 파일입니다. | 아니요 |
시스템 신뢰 저장소 사용 | 시스템 신뢰 저장소 또는 지정된 PEM 파일의 CA 인증서를 사용할지 여부를 지정합니다. 기본값은 False입니다. | 아니요 |
allowHostNameCNMismatch | TLS를 통해 연결할 때 CA에서 발급된 TLS/SSL 인증서 이름이 서버의 호스트 이름과 일치하도록 할지 여부를 지정합니다. 기본값은 False입니다. | 아니요 |
자체 서명 서버 인증서 허용 | 서버의 자체 서명된 인증서를 허용할지 여부를 지정합니다. 기본값은 False입니다. | 아니요 |
커넥트비아 | 데이터 저장소에 연결하는 데 사용할 Integration Runtime입니다. 필수 조건 섹션에서 자세히 알아보세요. 지정하지 않으면 기본 Azure Integration Runtime을 사용합니다. | 아니요 |
스토리지 레퍼런스 | 매핑 데이터 흐름에서 데이터를 준비하는 데 사용되는 스토리지 계정의 연결된 서비스에 대한 참조입니다. 이는 매핑 데이터 흐름에서 Hive 연결 서비스를 사용하는 경우에만 필요합니다. | 아니요 |
예:
{
"name": "HiveLinkedService",
"properties": {
"type": "Hive",
"typeProperties": {
"host" : "<cluster>.azurehdinsight.net",
"port" : "<port>",
"authenticationType" : "WindowsAzureHDInsightService",
"username" : "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
}
}
}
데이터 세트 속성
데이터 세트 정의에 사용할 수 있는 섹션 및 속성의 전체 목록은 데이터 세트 문서를 참조하세요. 이 섹션에서는 Hive 데이터 세트에서 지원하는 속성의 목록을 제공합니다.
Hive에서 데이터를 복사하려면 데이터 세트의 type 속성을 HiveObject로 설정합니다. 다음과 같은 속성이 지원됩니다.
속성 | 설명 | 필수 |
---|---|---|
유형 | 데이터 세트의 형식 속성을 HiveObject로 설정해야 합니다. | 예 |
스키마 | 스키마의 이름입니다. | 아니요(작업 원본에서 "query"가 지정된 경우) |
테이블 | 테이블 이름입니다. | 아니요(작업 원본에서 "query"가 지정된 경우) |
테이블 이름 | 스키마 파트를 포함하는 테이블의 이름입니다. 이 속성은 이전 버전과의 호환성을 위해 지원됩니다. 새 워크로드의 경우 schema 및 table 을 사용합니다. |
아니요(작업 원본에서 "query"가 지정된 경우) |
예제
{
"name": "HiveDataset",
"properties": {
"type": "HiveObject",
"typeProperties": {},
"schema": [],
"linkedServiceName": {
"referenceName": "<Hive linked service name>",
"type": "LinkedServiceReference"
}
}
}
복사 작업 속성
작업 정의에 사용할 수 있는 섹션 및 속성의 전체 목록은 파이프라인 문서를 참조하세요. 이 섹션에서는 Hive 원본에서 지원하는 속성의 목록을 제공합니다.
HiveSource를 원본으로 설정
Hive에서 데이터를 복사하려면 복사 작업의 원본 형식을 HiveSource로 설정합니다. 복사 작업 source 섹션에서 다음 속성이 지원됩니다.
속성 | 설명 | 필수 |
---|---|---|
유형 | 복사 작업 원본의 type 속성은 HiveSource로 설정해야 합니다. | 예 |
문의 | 사용자 지정 SQL 쿼리를 사용하여 데이터를 읽습니다. 예: "SELECT * FROM MyTable" |
아니요(데이터 세트의 "tableName"이 지정된 경우) |
예:
"activities":[
{
"name": "CopyFromHive",
"type": "Copy",
"inputs": [
{
"referenceName": "<Hive input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "HiveSource",
"query": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
매핑 데이터 흐름 속성
Hive 커넥터는 매핑 데이터 흐름에서 인라인 데이터 세트 원본으로 지원됩니다. 쿼리를 사용하거나 HDInsight의 Hive 테이블에서 직접 읽습니다. Hive 데이터는 데이터 흐름의 일부로 변환되기 전에 스토리지 계정에 parquet 파일로 준비됩니다.
원본 속성
다음 표에는 하이브 원본에서 지원하는 속성이 나열되어 있습니다. 이러한 속성은 원본 옵션 탭에서 편집할 수 있습니다.
이름 | 설명 | 필수 | 허용되는 값 | 데이터 흐름 스크립트 속성 |
---|---|---|---|---|
저장 | 저장소는 hive 여야 합니다. |
예 | hive |
store |
형식 | 테이블 또는 쿼리에서 읽는지 여부 | 예 |
table 또는 query |
포맷 |
스키마 이름 | 테이블에서 읽는 경우 원본 테이블의 스키마 | 예, 형식이 table 인 경우 |
String | 스키마이름 |
테이블 이름 | 테이블에서 읽는 경우 테이블 이름 | 예, 형식이 table 인 경우 |
String | 테이블 이름 |
쿼리 | 형식이 query 인 경우 Hive 연결 서비스에 대한 원본 쿼리 |
예, 형식이 query 인 경우 |
String | 문의 |
스테이징됨 | Hive 테이블은 항상 준비됩니다. | 예 | true |
스테이징됨 |
스토리지 컨테이너 | Hive에서 읽거나 Hive에 쓰기 전에 데이터를 준비하는 데 사용되는 스토리지 컨테이너입니다. 하이브 클러스터에는 이 컨테이너에 대한 액세스 권한이 있어야 합니다. | 예 | String | 저장용기 |
스테이징 데이터베이스 | 연결된 서비스에 지정된 사용자 계정에서 액세스할 수 있는 스키마/데이터베이스입니다. 스테이징 중에 외부 테이블을 만드는 데 사용되며 나중에 삭제됩니다. | 아니요 |
true 또는 false |
stagingDatabaseName (스테이징 데이터베이스 이름) |
사전 SQL 스크립트 | 데이터를 읽기 전에 Hive 테이블에서 실행할 SQL 코드 | 아니요 | String | preSQLs |
원본 예
다음은 Hive 원본 구성의 예입니다.
이러한 설정은 다음 데이터 흐름 스크립트로 변환됩니다.
source(
allowSchemaDrift: true,
validateSchema: false,
ignoreNoFilesFound: false,
format: 'table',
store: 'hive',
schemaName: 'default',
tableName: 'hivesampletable',
staged: true,
storageContainer: 'khive',
storageFolderPath: '',
stagingDatabaseName: 'default') ~> hivesource
알려진 제한 사항
- 배열, 맵, 구조체 및 공용 구조체와 같은 복합 형식은 읽을 수 없습니다.
- Hive 커넥터는 4.0 이상 버전(Apache Hive 3.1.0)의 Azure HDInsight에서 Hive 테이블만 지원합니다.
- 기본적으로 Hive 드라이버는 싱크에 "tableName.columnName"을 제공합니다. 열 이름에 테이블 이름이 표시되지 않도록 하려면 이를 수정하는 두 가지 방법이 있습니다. a. Hive 서버 쪽에서 "hive.resultset.use.unique.column.names" 설정을 확인하고 false로 설정합니다. b. 열 매핑을 사용하여 열 이름을 바꿉니다.
Hive에 대한 데이터 형식 매핑
Hive 간 데이터를 복사하는 경우 서비스 내에서 다음과 같은 중간 데이터 형식 매핑이 사용됩니다. 복사 활동에서 원본 스키마와 데이터 형식을 싱크에 매핑하는 방법에 대한 자세한 내용은 스키마 및 데이터 형식 매핑을 참조하세요.
Hive 데이터 유형 | 중간 서비스 데이터 형식(버전 2.0의 경우) | 중간 서비스 데이터 형식(버전 1.0의 경우) |
---|---|---|
TINYINT (타이니인트) | S바이트 | Int16 |
스몰인트 (SMALLINT) | Int16 | Int16 |
INT | Int32 | Int32 |
bigint | Int32 | Int64 |
BOOLEAN | 불리언 (Boolean) | 불리언 (Boolean) |
FLOAT | Single | Single |
DOUBLE | Double | Double |
DECIMAL | 십진수 | 십진수 문자열(전체 자릿수 > 28) |
STRING | String | String |
VARCHAR | String | String |
CHAR | String | String |
타임 스탬프 | DateTimeOffset | 날짜와 시간 |
DATE | 날짜와 시간 | 날짜와 시간 |
BINARY | Byte[] | 바이트[] |
ARRAY | String | String |
지도 | String | String |
구조 | String | String |
조회 작업 속성
속성에 대한 자세한 내용을 보려면 조회 작업을 확인하세요.
Hive 커넥터 수명 주기 및 업그레이드
다음 표에서는 Hive 커넥터의 여러 버전에 대한 릴리스 단계 및 변경 로그를 보여 줍니다.
버전 | 릴리스 단계 | 변경사항 기록 |
---|---|---|
버전 1.0 | 지원 종료 공지 | / |
버전 2.0 | GA 버전 사용 가능 | • 자체 호스팅 통합 런타임 버전은 5.54 이상이어야 합니다. • enableServerCertificateValidation 지원됩니다. • 기본값 enableSSL 은 true입니다. • WindowsAzureHDInsightService 인증 유형의 경우 기본값은 httpPath 이며 /hive2 입니다. • DECIMAL은 10진수 데이터 형식으로 읽습니다. • TINYINT는 SByte 데이터 형식으로 읽습니다. • TIMESTAMP는 DateTimeOffset 데이터 형식으로 읽습니다. • trustedCertPath , useSystemTrustStore , allowHostNameCNMismatch 및 allowSelfSignedServerCert 는 지원되지 않습니다. • ';'을(를) 사용하여 여러 호스트를 구분하는 것은 지원되지 않습니다(serviceDiscoveryMode를 사용하는 경우에만). • HiveServer1 및 HiveThriftServer는 ServerType 지원되지 않습니다. • 사용자 이름 인증 유형은 지원되지 않습니다. SASL 전송 프로토콜은 UsernameAndPassword 인증 유형만 지원합니다. 이진 전송 프로토콜은 익명 인증 유형만 지원합니다. • serviceDiscoveryMode , zooKeeperNameSpace , useNativeQuery 은(는) 지원되지 않습니다. |
Hive 커넥터를 버전 1.0에서 버전 2.0으로 업그레이드
연결된 서비스 편집 페이지에서 버전 2.0을 선택하고 연결된 서비스 속성 버전 2.0을 참조하여 연결된 서비스를 구성합니다.
Hive 연결된 서비스 버전 2.0에 대한 데이터 형식 매핑은 버전 1.0의 데이터 형식 매핑과 다릅니다. 최신 데이터 형식 매핑을 알아보려면 Hive에 대한 데이터 형식 매핑을 참조하세요.
버전 5.54 이상을 사용하여 자체 호스팅 통합 런타임을 적용합니다.
관련 콘텐츠
복사 작업에서 원본 및 싱크로 지원되는 데이터 저장소 목록은 지원되는 데이터 저장소를 참조하세요.