hive 예제

뷰는 가상 테이블을 만드는 데 사용됩니다. 실제 테이블을 만드는 것보다 빠르며 다른 쿼리에서 테이블을 사용하는 동안 테이블로 작업할 수 있습니다. 예를 들어 강수뷰는 다음과 같이 이루어질 수 있으며 테이블이 사용되는 것처럼 다른 쿼리에서 사용될 수 있다. 샘플링 절을 사용하면 사용자가 전체 테이블 대신 데이터 샘플에 대한 쿼리를 작성할 수 있습니다. 현재 샘플링은 CREATE TABLE 문의 CLUSTERED BY 절에 지정된 열에서 수행됩니다. 다음 예제에서는 pv_gender_sum 테이블의 32개 버킷 중 3번째 버킷을 선택합니다. 선택한 버킷은 bucket_number 모듈 y가 x와 같은지 결정됩니다. 따라서 위의 예제에서 다음 테이블 샘플 절 다음 명령은 “/사용자/하이브/웨어하우스/retail.db”의 위치에 있는 테이블을 만듭니다. 각 테이블의 스키마는 hiveQuery 내에서 사용할 수 있는 유형으로 프로그램에 도입됩니다(F# 쿼리 식과 유사하지만 Hive 관련 연산자 지원). 형식은 IntelliSense를 통해 사용할 수 있으므로 예비 쿼리를 보다 쉽게 작성할 수 있습니다. 예를 들어, 어떤 사용자가 비디오를 게시하고 어떤 사용자가 주석을 게시했는지 추적하는 두 개의 서로 다른 테이블이 있다고 가정하면 다음 쿼리가 사용자 테이블과 공용 구조체의 결과를 모두 조인하여 단일 모든 비디오 게시 및 댓글 게시 이벤트에 대한 표기 스트림 : 하나의 매퍼가 임의의 행 세트를 가져 와서 별개의 (dt, 국가) 쌍의 수가 한계를 초과 할 가능성이 매우 높다는 문제 hive.exec.max.dynamic.partitions.pernode.

한 가지 방법은 매퍼의 동적 파티션 열로 행을 그룹화하고 동적 파티션이 생성되는 감속기에 배포하는 것입니다. 이 경우 고유한 동적 파티션 수가 크게 줄어듭니다. 위의 예제 쿼리는 다시 작성할 수 있습니다: 쿼리에서 사용할 파티션은 파티션 열에 대한 절 조건을 기준으로 시스템에 의해 자동으로 결정됩니다. 예를 들어 도메인 xyz.com 03/2008 월에 참조 된 모든 page_views를 얻으려면 다음 쿼리를 작성할 수 있습니다.이 예제에서는 테이블 행을 구성하는 열이 형식 의 정의와 유사한 방식으로 지정됩니다. 주석은 테이블 수준뿐만 아니라 열 수준에서도 첨부할 수 있습니다. 또한 절로 분할된 것은 데이터 열과 다르고 실제로 데이터와 함께 저장되지 않는 분할 열을 정의합니다. CLUSTERED BY 절은 버킷작성에 사용할 열과 만들 버킷 수를 지정합니다. 구분된 행 형식은 행이 하이브 테이블에 저장되는 방법을 지정합니다. 구분된 형식의 경우 필드가 종료되는 방법, 컬렉션 내의 항목(배열 또는 맵) 및 맵 키가 종료되는 방법을 지정합니다. 저장된 AS SEQUENCEFILE은 이 데이터가 HDF에 이진 형식(hadoop SequenceFiles 사용)으로 저장됨을 나타냅니다.

위의 ROW FORMAT 및 저장된 AS 절에 대해 표시되는 값은 시스템 기본값을 나타냅니다. HiveTable은 더 이상 IQueryable을 구현하지 않으므로 F# 쿼리 식에서 사용할 수 없으며 hiveQuery 식에서 아직 지원되지 않습니다. 다른 테이블에 키가 있는지 확인하기 위해 사용자는 다음 예제와 같이 LEFT SEMI JOIN을 사용할 수 있습니다. input.txt 파일의 배열 및 맵 필드는 이러한 예제에 대한 null 필드라고 가정합니다.