Hive 쿼리에서 가져오기

중요

Machine Learning Studio(클래식)에 대한 지원은 2024년 8월 31일에 종료됩니다. 해당 날짜까지 Azure Machine Learning으로 전환하는 것이 좋습니다.

2021년 12월 1일부터 새로운 Machine Learning Studio(클래식) 리소스를 만들 수 없습니다. 2024년 8월 31일까지는 기존 Machine Learning Studio(클래식) 리소스를 계속 사용할 수 있습니다.

ML Studio(클래식) 설명서는 사용 중지되며 나중에 업데이트되지 않을 수 있습니다.

이 문서에서는 Machine Learning Studio(클래식)에서 데이터 가져오기 모듈을 사용하여 Hadoop 클러스터 및 HDInsight 분산 스토리지에서 데이터를 가져오는 방법을 설명합니다.

참고

적용 대상: Machine Learning Studio(클래식)

유사한 끌어서 놓기 모듈은 Azure Machine Learning 디자이너에서 사용할 수 있습니다.

Hive에서 데이터를 가져오는 것은 큰 데이터 세트를 로드하거나 데이터를 기계 학습 실험에 로드하기 전에 MapReduce 작업을 사용하여 데이터를 미리 처리하려는 경우에 특히 유용합니다.

중요

2018년 7월 31일 현재 Microsoft Azure HDInsight 버전 3.3은 Windows HDInsight의 마지막 버전이었습니다. Windows 3.3 이하의 HDInsight 클러스터가 있는 경우 Linux의 HDInsight(HDInsight 버전 3.5 이상)로 마이그레이션해야 합니다. 사용 중지된 HDInsight 버전에 대한 자세한 내용은 사용 중지 버전 섹션을 참조하세요. Machine Learning Studio(클래식)는 특정 시나리오에서 Linux의 HDInsight를 지원합니다.

Linux의 HDInsight 지원

Machine Learning Studio(클래식)는 다음 시나리오에서 Linux의 HDInsight를 지원합니다.

  • Hadoop 2.7.3(HDI 3.6) Blob을 기본값으로, ADLS 보조
  • Spark 2.1.0(HDI 3.6) Blob을 기본값으로, ADLS 보조
  • Spark 2.2.0(HDI 3.6) Blob을 기본값으로, ADLS 보조
  • Spark 2.3.0(HDI 3.6) Blob을 기본값으로, ADLS 보조

알려진 문제

Linux의 HDInsight에서 Hive 쿼리용 데이터 가져오기 모듈을 사용하는 데는 몇 가지 알려진 문제가 있습니다.

Hive 쿼리에서 데이터를 가져오는 방법

마법사 사용

이 모듈에는 스토리지 옵션을 선택하고, 기존 구독 및 계정 중에서 선택하고, 모든 옵션을 신속하게 구성하는 데 도움이 되는 새 마법사가 있습니다.

  1. 데이터 가져오기 모듈을 실험에 추가합니다. 데이터 입력 및 출력 범주의 Studio(클래식)에서 모듈을 찾을 수 있습니다.

  2. 데이터 가져오기 마법사 시작을 클릭하고 프롬프트를 따릅니다.

  3. 구성이 완료되면 실제로 데이터를 실험에 복사하려면 모듈을 마우스 오른쪽 단추로 클릭하고 선택한 실행을 선택합니다.

기존 데이터 연결을 편집해야 하는 경우 마법사는 처음부터 다시 시작할 필요가 없도록 모든 이전 구성 세부 정보를 로드합니다.

수동으로 가져오기 속성 설정

다음 단계에서는 가져오기 원본을 수동으로 구성하는 방법을 설명합니다.

  1. 데이터 가져오기 모듈을 실험에 추가합니다. 데이터 입력 및 출력 범주의 Studio(클래식)에서 모듈을 찾을 수 있습니다.

  2. 데이터 원본의 경우 Hive 쿼리를 선택합니다.

  3. Hive 데이터베이스 쿼리 텍스트 상자에서 HiveQL을 사용하여 읽을 데이터를 지정합니다.

    HiveQL은 Machine Learning Studio(클래식)에 데이터를 추가하기 전에 데이터를 집계하고 데이터 필터링을 수행하는 데 사용할 수 있는 SQL 같은 쿼리 언어입니다. 그러나 Hive 쿼리는 데이터를 테이블 형식으로 반환해야 합니다.

    예를 들어 이 문은 유효한 Hive 쿼리입니다.

    SELECT <column list> FROM table WHERE <expression>;

  4. HCatalog 서버 URI 텍스트 상자를 클릭한 다음 클러스터의 정규화된 이름을 입력합니다.

    예를 들어 mycluster001이라는 이름의 클러스터를 만든 경우 다음 형식을 사용합니다. https://mycluster001.azurehdinsight.net

  5. Hadoop 사용자 계정 이름 텍스트 상자를 클릭하고 클러스터를 프로비전할 때 사용한 Hadoop 사용자 계정에 붙여넣습니다.

  6. Hadoop 사용자 계정 암호 텍스트 상자를 클릭하고 클러스터를 프로비전할 때 사용한 자격 증명을 입력합니다.

    Hadoop에 대한 클러스터 명명 및 인증에 대한 자세한 내용은 HDInsight에서 Hadoop 클러스터 프로비저닝을 참조하세요.

  7. 출력 데이터의 위치에 대해 데이터가 저장되는 위치를 나타내는 옵션을 선택합니다. 데이터가 HDFS(Hadoop 분산 파일 시스템)에 있는 경우 방금 입력한 것과 동일한 계정 및 암호를 통해 액세스할 수 있어야 합니다. 데이터가 Azure에 있는 경우 스토리지 계정의 위치 및 자격 증명을 제공합니다.

    • HDFS: HDFS 서버 URI를 입력하거나 붙여넣습니다. 접두사 없이HTTPS:// HDInsight 클러스터 이름을 사용해야 합니다.

    • Azure: Azure Storage 계정 이름의 경우 Azure 계정의 이름을 입력합니다. 예를 들어 스토리지 계정의 전체 URL이 https://myshared.blob.core.windows.net면 입력 myshared합니다.

    • Azure Storage 키: 스토리지 계정에 액세스하기 위해 제공된 키를 복사하여 붙여넣습니다.

    • Azure 컨테이너 이름의 경우 클러스터의 기본 컨테이너를 지정합니다. 사용할 컨테이너를 구성하는 데 도움이 되는 섹션을 참조하세요.

  8. 데이터가 많이 변경되지 않거나 실험을 실행할 때마다 데이터를 다시 로드하지 않으려면 캐시된 결과 옵션 사용을 선택합니다.

    이 옵션을 선택하면 모듈 매개 변수에 대한 다른 변경 내용이 없는 경우 실험은 모듈을 처음 실행할 때 데이터를 로드하고, 그 후에는 캐시된 버전의 데이터 세트를 사용합니다.

    실험 데이터 세트의 각 반복에서 데이터 세트를 다시 로드하려면 캐시된 결과 사용 옵션을 선택 취소합니다. 데이터 가져오기의 매개 변수가 변경되면 결과가 다시 로드됩니다.

  9. 실험을 실행합니다.

결과

완료되면 출력 데이터 세트를 클릭하고 시각화 를 선택하여 데이터를 성공적으로 가져왔는지 확인합니다.

오류가 발생하면 데이터에서 누락된 값, 추가 빈 열 또는 호환되지 않는 데이터 형식이 있는지 확인합니다.

HDInsight 클러스터를 구성하고 기계 학습 실험에서 Hive 쿼리를 사용하는 방법에 대한 예제는 다음 리소스를 참조하세요.

Hive는 다양한 종류의 데이터 정리 및 사전 처리에 뛰어난 기능을 제공하지만 가져오기 후에는 모델링을 위해 데이터를 준비하는 데 이러한 도구가 유용할 수 있습니다.

  • 메타데이터 편집 및 기타 모듈을 사용하여 열 이름을 변경하고, 레이블 및 기능을 포함하는 열을 지정하고, 열 데이터 형식을 지정합니다. 예제는 데이터 세트 처리를 참조하세요.

  • Python을 사용하여 텍스트 데이터를 처리한 후 문장 부호를 제거하고 음성 부분에 플래그를 지정하는 등의 작업을 수행합니다. 예제는 텍스트 분류를 참조하세요.

  • 여러 원본의 여러 테이블을 단일 학습 데이터 테이블로 결합합니다. 예제는 예측 유지 관리를 참조하세요.

기술 정보

이 섹션에는 구현 정보, 팁, 질문과 대답이 포함되어 있습니다.

기본 컨테이너를 확인하는 방법

모든 기본값을 수락하여 클러스터를 만든 경우 클러스터와 이름이 같은 컨테이너가 클러스터를 만들 때 동시에 만들어졌습니다. 해당 컨테이너는 클러스터의 기본 컨테이너입니다. 그러나 클러스터를 만들 때 CUSTOM CREATE 옵션을 선택한 경우 기본 컨테이너를 선택하는 두 가지 옵션이 제공됩니다. 첫 번째 옵션은 기존 컨테이너를 선택하는 것입니다. 이렇게 하면 해당 컨테이너는 클러스터의 기본 스토리지 컨테이너가 됩니다. 두 번째 옵션은 기본 컨테이너 만들기입니다. 이 옵션을 사용하면 기본 컨테이너의 이름이 클러스터와 같습니다.

Hive 쿼리에서 Python 스크립트를 호출하는 방법

데이터 가져오기 모듈을 사용하여 Python UDF를 호출하여 레코드를 처리하는 Hive 쿼리를 실행할 수 있습니다.

자세한 내용은 HDInsight에서 Hive 및 Pig와 함께 Python 사용을 참조하세요.

Hive를 사용하여 데이터를 사전 처리할 때 메모리 부족 문제 방지

하이브 쿼리를 사용하여 빅 데이터 원본에서 레코드를 추출할 때, Hadoop 클러스터의 기본 구성이 너무 제한적이어서 MapReduce 작업 실행이 지원되지 않는 경우도 있습니다. 예를 들어 HDInsight에 대한 이러한 릴리스 정보 에서 기본 설정은 4노드 클러스터로 정의됩니다.

MapReduce 작업의 요구 사항이 사용 가능한 용량을 초과하는 경우 Hive 쿼리는 메모리 부족 오류 메시지를 반환하여 데이터 가져오기 작업이 실패할 수 있습니다. 이 경우 다음과 같이 데이터 가져오기 모듈에서 Hive 쿼리에 대한 기본 메모리 할당을 변경할 수 있습니다.

Increase memory to maximum allowed on cluster

이 예제에서는 set mapreduce.map.memory.mbset mapreduce.reduce.memory.mb 명령을 사용하여 메모리의 양을 클러스터에서 허용되는 최대값까지 늘렸습니다.

일반적인 질문

동일한 데이터를 불필요하게 다시 로드하지 않도록 방지할 수 있는 방법

원본 데이터가 변경되면 데이터 가져오기를 다시 실행하여 데이터 세트를 새로 고치고 새 데이터를 추가할 수 있습니다. 그러나 실험을 실행할 때마다 원본에서 다시 읽지 않으려면 캐시된 결과 사용 옵션을 TRUE로 선택합니다. 이 옵션을 TRUE로 설정하면 모듈은 동일한 원본 및 동일한 입력 옵션을 사용하여 실험이 이전에 실행되었는지 확인하고, 이전 실행이 발견되면 원본에서 데이터를 다시 로드하는 대신 캐시의 데이터가 사용됩니다.

원본에서 읽는 데이터를 필터링할 수 있나요?

데이터 가져오기 모듈 자체는 데이터를 읽는 동안 필터링을 지원하지 않습니다.

데이터를 Machine Learning Studio(클래식)로 읽기 전에 필터링하려면 Hive 쿼리 또는 MapReduce 작업을 사용하여 데이터를 집계하고 변환합니다.

Machine Learning Studio(클래식)에 로드된 후 데이터를 필터링하는 여러 옵션도 있습니다.

  • 사용자 지정 R 스크립트를 사용하여 원하는 데이터만 가져옵니다.
  • 데이터 분할 모듈을 상대 식 또는 정규식과 함께 사용하여 원하는 데이터를 격리한 다음 데이터 세트로 저장합니다.

참고

필요 이상으로 많은 데이터를 로드한 경우 새 데이터 집합을 읽은 다음 더 오래되고 크기가 큰 데이터와 같은 이름으로 저장하여 캐시된 데이터 집합을 덮어쓸 수 있습니다.

모듈 매개 변수

Name 범위 Type 기본값 Description
데이터 원본 목록 데이터 원본 또는 싱크 Azure Blob Storage 데이터 원본은 HTTP, FTP, 익명 HTTPS 또는 FTPS, Azure BLOB Storage의 파일, Azure 테이블, Azure SQL Database, 온-프레미스 SQL Server 데이터베이스, Hive 테이블 또는 OData 엔드포인트일 수 있습니다.
하이브 데이터베이스 쿼리 any StreamReader HQL 쿼리
HCatalog 서버 URI any String Templeton 엔드포인트
Hadoop 사용자 계정 이름 any String Hadoop HDFS/HDInsight 사용자 이름
Hadoop 사용자 계정 암호 any SecureString Hadoop HDFS/HDInsight 암호
출력 데이터의 위치 any DataLocation HDFS outputDir에 HDFS 또는 Azure 지정
HDFS 서버 URI any String HDFS rest 엔드포인트
Azure Storage 계정 이름 any String Azure Storage 계정 이름
Azure Storage 키 any SecureString Azure Storage 키
Azure 컨테이너 이름 any String Azure 컨테이너 이름
데이터 콘텐츠 형식 목록(하위 집합) URL 내용 OData 데이터 형식 유형
원본 URL any String Power Query 데이터 원본에 대한 URL
캐시된 결과 사용 TRUE/FALSE 부울 FALSE description

출력

Name Type Description
결과 데이터 집합 데이터 테이블 다운로드한 데이터가 포함된 데이터 집합입니다.

예외

예외 설명
오류 0027 두 개체의 크기가 같아야 하지만 다른 경우 예외가 발생합니다.
오류 0003 입력 중 하나 이상이 null이거나 비어 있으면 예외가 발생합니다.
오류 0029 잘못된 URI가 전달되면 예외가 발생합니다.
오류 0030 파일을 다운로드할 수 없는 경우 예외가 발생합니다.
오류 0002 하나 이상의 매개 변수를 구문 분석할 수 없거나 지정된 형식을 대상 방법에 필요한 형식으로 변환할 수 없으면 예외가 발생합니다.
오류 0009 Azure 저장소 계정 이름 또는 컨테이너 이름을 잘못 지정하는 경우 예외가 발생합니다.
오류 0048 파일을 열 수 없으면 예외가 발생합니다.
오류 0015 데이터베이스 연결에 실패하면 예외가 발생합니다.
오류 0046 지정한 경로에 디렉터리를 만들 수 없으면 예외가 발생합니다.
오류 0049 파일을 구문 분석할 수 없으면 예외가 발생합니다.

Studio(클래식) 모듈과 관련된 오류 목록은 Machine Learning 오류 코드를 참조하세요.

API 예외 목록은 MACHINE LEARNING REST API 오류 코드를 참조하세요.

추가 정보

데이터 가져오기
데이터 내보내기
HTTP를 통해 웹 URL에서 가져오기
Azure SQL Database에서 가져오기
Azure Table에서 가져오기
Azure Blob Storage에서 가져오기
데이터 피드 공급자에서 가져오기
온-프레미스 SQL Server 데이터베이스에서 가져오기