데이터의 많은 함께 작동 해야 할 때 그들을 저장 하는 것은 좋은 선택입니다. 놀라운 발견 또는 미래의 예측 하지 사용 하지 않는 데이터에서 올 것 이다. 큰 데이터는 복잡 한 괴물 이다. 복잡 한 MapReduce 프로그램을 Java 프로그래밍 언어로 작성 시간, 좋은 자원 및 대부분의 기업 없어 전문성을 많이 걸립니다. 이 때문에 Hadoop에 하이브는 강력한 해결책이 될 수와 같은 도구와 데이터베이스를 구축 합니다.
피터 J Jamack의 비즈니스 인텔리전스, 데이터 웨어하우징, 분석, 대용량 데이터 및 정보 관리 경험 13 년 이상 큰 데이터 분석 컨설턴트 이다. 그는 구조적 통합 하 고 혁신적인 분석 솔루션으로 구조화 되지 않은 데이터를 사용 하 여 큰 데이터 및 MPP 플랫폼을 제공 하는 대형-규모, 통합 분석 플랫폼, 보험, 정부, 미디어를 포함 하 여 모든 생 업에서 고객 금융, 소매, 소셜 미디어, 마케팅 및 소프트웨어의 광범위 한.
만약 회사 복잡 하 고 큰 데이터 분석 플랫폼 구축에 자원이 없는? 때 비즈니스 인텔리전스 (BI), 데이터 웨어하우징 및 분석 도구는 Apache Hadoop 시스템에 연결할 수 없습니다 또는 그들은 요구 사항 보다 더 복잡 한 경우에, 그들은 무엇을 해야 합니까? 대부분의 기업이 관계형 데이터베이스 관리 시스템 ( rdbmses) 구조적 쿼리 언어 (SQL) 직원을 경험 했다. 아파치 하이브 이러한 데이터베이스 개발자 또는 데이터 분석가 Hadoop MapReduce 또는 Java 프로그래밍 언어를 이해 하지 않고도 사용할 수 있습니다. 이제 스타 모델 또는 도전 MapReduce 코드 없이 정규화 된 데이터베이스에 대 한 데이터 웨어하우스를 디자인할 수 있습니다. 갑자기, IBM Cognos 등 SPSS 통계, BI 및 분석 도구는 Hadoop 시스템에 연결할 수 있습니다.
데이터베이스
데이터베이스를 구축 하 고 해당 데이터를 사용할 수 있는 Hadoop 또는 데이터베이스 문제가 되지 않습니다. 년 동안, 사람들이 라이브러리로 데이터를 조직에 익숙한 되었습니다. 많은 오래 된 질문이 있다: 어떻게 데이터를 분류 합니까? 어떻게 연결 합니까 모든 데이터 통합된 플랫폼, 섀시, 또는 라이브러리? 년 동안 다양 한 프로그램 등장.
많은 방법, 듀이 십진법 등 발명 되었습니다 했다. 그들은 사람이 나 기업 알파벳 순서로 주소록에서 이름을 정렬합니다. 금속 서류 캐비넷, 창 고 선반, 주소 카드 파일 시스템과 등이 있다. 고용주는 시간 카드, 시계, 시간표와 직원을 추적 하려고 합니다. 사람들이 구조 및 데이터를 구성 하 고 그들은 반영 하 고 그 데이터를 검사 해야. 액세스 하거나 구조, 데이터를 이해할 수 없습니다, 너무 많은 데이터를 저장할 실용적인 의미 무엇입니까?
RDBMSes 집합 이론과 셋째 기본 폼을 사용합니다. 데이터 웨어하우스는 Kimball, Inmon, 스타 모델, 공장, 기업 정보 및 개인 데이터 마트 있습니다. 그들은 마스터 데이터 관리, 기업 자원 계획, 고객 관계 관리, 전자 의료 기록, 그리고 사람들이 사용 어떤 종류의 구조와 주제에 트랜잭션을 구성 하는 많은 다른 시스템이 있다. 지금, 우리는 소셜 미디어, 메일, 통화 기록, 기계 지침, 원격 정보 등 다양 한 산업에서 구조화 또는 반 구조화 된 데이터의 많은 수가 있다. 이 새로운 데이터 구조에 새로운 데이터를 저장 하는 매우 복잡 한, 매우 큰 시스템으로 통합 될 필요가 있다. 보고서를 개선 하기 위해 영업 관리자는 어떻게 분류할 수 있습니까? 어떻게 구축 합니까 라이브러리 경영진 차트 및 그래프를 액세스할 수 있도록?
구조 데이터 데이터베이스를 하는 방법을 찾을 수 해야 합니다. 그렇지 않으면, 데이터 과학자의 많은 수만 데이터에 액세스할 수 있습니다. 때때로 사람들은 그냥 간단한 보고서 필요합니다. 때때로 그들은 단지 싶지 드래그 하거나 SQL 쿼리를 작성.
큰 데이터, Hadoop 및 Infosphere biginsights
이 섹션 Infosphere biginsights 하 둡, 대용량 데이터, 하이브, 데이터베이스, 및에 관계를 소개 합니다. Infosphere Biginsights는 하 둡에 대 한 IBM 파티션입니다. 아파치와 Cloudera에 대해 더 알고 있습니다 하지만 업계에서 많은 사람들이 Hadoop에 다뤄 있다. 그것은 오픈 소스 사용 MapReduce Hadoop 분산 파일 시스템 (HDFS), 하 둡의 시작 하 고 종종 동물원의 사육 담당자, Oozie, Sqoop, 하이브, 피그, HBase 등 다른 도구를 포함. 이러한 배포판 및 일반 Hadoop의 차이 Hadoop의 상단에 추가 되는 것입니다. Infosphere biginsights 버전의이 종류에 속한다.
Hadoop의 Cloudera 버전 위에 Infosphere biginsights를 사용할 수 있습니다. 또한, Infosphere Biginsights Infosphere 스트림을 결합할 수 있는 빠르고, 구조화 분석 엔진을 제공 합니다. Infosphere 스트림 공동 실시간 분석 및 배치-지향 분석의 가능성을 시작 하는 실시간 분석 엔진입니다.
Infosphere Biginsights 내장, 브라우저 기반 스프레드시트 bigsheets는 또한 있다. 이 스프레드시트는 매일 스프레드시트 스타일에 큰 데이터와 Hadoop을 사용 하는 분석가 수 있습니다. 다른 기능에 역할 기반 보안 및 관리 되는 LDAP 통합, 추출, 변환, 로드 (ETL) Infosphere DataStage와 통합 통용 가속기 사용 경우 로그 및 시스템 데이터 분석 및 일반적인 디렉토리 및 재사용 일을 포함 하는 응용 프로그램 디렉터리 이클립스 플러그인; 그리고 Bigindex, 실제로 Lucene 색인 도구 Hadoop에 내장.
또한 적응형 MapReduce, 압축 된 텍스트 파일, 및 적응형 일정 향상 된 성능을 높일 수 있습니다. 또한, 콘텐츠 분석 및 Cognos 소비자 인 사이트와 같은 다른 응용 프로그램을 통합할 수 있습니다.
하이브
하이브는 강력한 도구입니다. HDFS, 메타 데이터 저장소 (기본적으로는 아파치 더비 데이터베이스), 쉘 명령, 드라이브, 컴파일러 및 실행 엔진을 사용합니다. 그것은 또한 Java 데이터베이스 연결 (JDBC) 연결을 지원합니다. 같은 기능 및 데이터베이스와 같은 기능으로 인해 하이브 큰 데이터 비 프로그래머를 위한 Hadoop 생태계를 열 수 있습니다. 그것은 또한 제공 한다 외부 BI 소프트웨어를, 예를 들어 JDBC 드라이브와 웹 클라이언트와 Cognos 연결을 통해.
기존 데이터베이스 개발자 시간이 걸리는 노력 없이 자바 MapReduce 프로그래머를 찾을 수에 사용할 수 있습니다. 이것의 장점은 SQL 코드의 10-15 라인을 작성 하 고 최적화 MapReduce 코드 아닌 강요 대신에 그것을 번역 하는 데이터베이스 개발자를 가질 수는 200 줄의 코드, 또는 더 복잡 한 MapReduce 코드를 작성 하는 프로그래머 또는 프로그래머.
하이브는 종종 데이터 웨어하우스 인프라 Hadoop을 기반으로 설명 됩니다. 사실은, 하이브 데이터 웨어하우스는 아무 상관이 있다입니다. 실제 데이터 웨어하우스를 구축 하려는 경우 IBM Netezza 같은 몇 가지 도구를 사용할 수 있습니다. 하지만 hadoop 데이터베이스를 구축 하 고 싶지만 Java 또는 MapReduce의 지식이 필요 하지 않습니다, 경우 다음 하이브 것 좋은 선택 (해당 되는 경우 SQL 알고). 하이브 둡과 HBase의 HIVEQL를 사용 하 여 SQL과 비슷한 쿼리를 작성할 수 있도록 고 HDFS 위에 스타 모델을 만들 수 있습니다.
하이브를 RDBMSes
Rdbmses은 일반적인 쓰기 모드 시스템 하이브 읽기 모드 시스템 이다. 전통적인 rdmbses 데이터를 작성할 때 모델을 확인 합니다. 데이터 구조와 일치 하지 않으면, 그것은 거부 됩니다. 하이브는 적어도 처음에는 데이터의 구조에 대 한 상관 하지 않습니다, 그리고 그것은 데이터를 로드할 때 모델을 확인 하지 않습니다. 쿼리를 실행 한 후에, 그것은 모델에 관심이 있다.
하이브 제한
하이브를 사용 하는 경우 몇 가지 문제가 있을 수 있습니다. 첫째, SQL 92와 호환 되지 않습니다. 에 하지 않아, 좋아하고 같지와 같은 일부 표준 SQL 함수, 존재, 하거나 어떤 종류의 작업 영역을 필요 없습니다. 마찬가지로, 일부 수학 함수는 엄격 하 게 제한 된 또는 존재 하지 않는. 타임 스탬프 또는 날짜 가장 최근에 부가 가치 이며 SQL 날짜 호환성 보다 더 많은 자바 날짜 호환. 데이터 차이, 같은 몇 가지 간단한 기능 제대로 작동 하지 않습니다.
또한, 하이브는 낮은 대기 시간, 실시간, 또는 근처 실시간 쿼리 개발 하지. SQL 쿼리는 일부 쿼리에 대 한 성능을 비교할 수 있습니다 낮은 전통적인 RDBMS에 즉 MapReduce 변환 됩니다.
또 다른 한계는 메타 데이터 저장소는 기본적으로 더비 데이터베이스 및 엔터프라이즈 또는 생산을 위한 것이 아니다. 일부 Hadoop 사용자 대신 메타 데이터 저장소로 외부 데이터베이스를 사용 하지만 이러한 외부 메타 데이터 저장소는 또한 그들의 자신의 문제 및 구성 문제 있다. 이 또한 유지 하 고 Hadoop 외부 RDBMS 시스템을 관리 하는 사람 필요 의미 합니다.
Infosphere biginsights 설치
이 야구 데이터 샘플 하이브에 플랫 파일에서 공통 데이터베이스를 구축 하는 방법을 보여 줍니다. 이 예제는 상대적으로 작은, 그것은 얼마나 쉬운 그것은 기대에 부합 되도록 통계를 실행 하는 데 사용할 수 있는 하이브를 사용 하 여 데이터베이스를 구축 하는 보여 줍니다. 구조화 되지 않은 데이터를 구성 하려고 할 때에 미래에 그 정보를 확인 하지 않아도 됩니다.
데이터베이스를 작성이 완료 되 면 만들 수 있습니다 웹 또는 GUI 어떤 언어를 사용 하 여 프런트 엔드 하이브 JDBC에 연결로. (구성 및 중고품 서버 설정, 하이브 JDBC 다른 주제입니다). 난 내 애플 맥북에 infosphere biginsights 가상 머신 (VM)을 만드는 데 vm 웨어 퓨전을 사용. 이것은 간단한 테스트는 내 VM RAM의 1 GB와 기가바이트의 고체 디스크 저장 공간입니다. 운영 체제는 리눅스 및 reg; CentOS 6.4 64 비트 배포판의. 만약 당신이 오라클 VM 버추얼 박스, 같은 특정 도구를 사용할 수도 있습니다는 windows & reg; 사용자, 노래 Infosphere biginsights Vm을 만들 vm 웨어 플레이어를 사용할 수 있습니다. (VM, vm 웨어 플레이어, 또는 융합에서 버추얼 박스 설정 적용 되지 않습니다이 문서에서.) )
IBM infosphere biginsights 자료 버전을 다운로드 하 여 시작 합니다. IBM ID를 해야 하거나 ID를 등록 하 고 Infosphere biginsights 기본 버전을 다운로드 합니다.
입력 및 데이터 분석
이제 어디서 나 데이터를 얻을 수 있습니다. 쉼표로 구분 된 값 (CSV) 형식으로 데이터를 제공 하는 대부분의 사이트: 날씨, 에너지, 스포츠, 금융, 및 블로그 데이터. 예를 들어 나는 숀 Lahman 웹 사이트에서 구조화 된 데이터를 사용합니다. 구조화 되지 않은 데이터의 사용은 힘 드는 수 있습니다.
더 많은 수동 환경에 있을 하려는 경우 다음에서 얻을 수 있습니다 리눅스 & reg; 그것을 완료 하려면 디렉터리를 만들고 다음 wget을 실행 해야 합니다.
$ Sudo Mkdir/사용자/야구입니다.
sudo wget http://seanlahman.com/files/database/lahman2012-csv.zip
이 데이터는 크리에이 티브 코몬즈 저작자 표시-동일 조건 변경 허락 3.0 Unported 라이선스를 사용합니다.
압축된 파일은 야구와 야구 선수 CSV 파일에 대 한 통계를 포함합니다. 이 예제에서는 각각 하나의 열 (player_id) 4 개의 기본 테이블을 포함 되어 있습니다.
마스터 table.csv-선수 이름, 생년월일, 전기 정보
batting.csv-타격 통계
pitching.csv-투구 통계
fielding.csv-잡을 통계
보조 테이블:
allstarfull.csv-올 스타 라인업
Fame.csv-명예의 전당 설문 조사 데이터의 홀
managers.csv-관리 통계
teams.csv-연간 통계와 순위
battingpost.csv-시즌의 타격 통계
pitchingpost.csv-시즌의 투구 통계
teamfranchises.csv-가입 정보
fieldingof.csv-필드 위치 데이터
fieldingpost.csv-시즌 후 필드 데이터
Managershalf.csv-브로커에 분기별 데이터
Teamshalf.csv-에 대 한 분기별 데이터 팀
salaries.csv-플레이어 급여 데이터
seriespost.csv-시즌 포스트 시리즈 정보
awardsmanagers.csv-중 개인 수상
awardsplayers.csv-플레이어 상
awardssharemanagers.csv-브로커 보너스 투표
awardsshareplayers.csv-플레이어 상 투표
Appearances.csv
Schools.csv
Schoolsplayers.csv
디자인 데이터베이스
디자인 데이터베이스의 대부분 완료 되었습니다. PLAYER_ID 4 개의 기본 테이블 (마스터, 타자, 투 수와 수 비)에 대 한 기본 키입니다. (더 나은 대 한 테이블 구조 및 종속성을 이해 읽기 Readme2012.txt.) )
디자인은 매우 간단 합니다: 기본 테이블 player_id에 의해 연결 된다. 기본 키 또는 참조 무결성 개념 하이브 정말 사용 하지 않습니다. 스키마 읽기에 하이브를 테이블에 입력 하는 모든 것을 삭제 합니다 것을 의미 합니다. 파일은 혼란, 그들을 연결 하는 좋은 방법의 찾을 해야 합니다. 또한, 일부 변형 하이브 또는 HDFS에 데이터를 로드 하기 전에 필요 합니다. 정말 이에요 원칙에 스키마에 따라 잘못 된 데이터 완전히 하이브에 잘못 된 데이터를 될 것입니다. 이 때문에 데이터 분석, 소스 수준 또는 HDFS 수준 인지는 중요 한 단계입니다. 데이터 분석 없이 원래 데이터를 얻은 사람에 게 사용할 수 있었습니다. 다행히, 야구 예제 청소 되어 Hadoop을 입력 하기 전에 조직 된 일부 데이터가 포함 되어 있습니다.
HDFS 또는 하이브 데이터 로드
Hadoop으로 데이터를 로드 다양 한 이론과 사례를 사용 합니다. 때때로 HDFS에 직접 원본 파일을 입력할 수 있습니다. 디렉토리와 당신의 파일, 하지만 복사 또는 이동 한 장소에서 다른 파일은 간단한 과정을 구성 하는 하위 디렉터리를 만들 수 있습니다.
이 예제에서는 단순히 넣어 명령을 실행 하 고 야구 라는 디렉터리를 만듭니다.
Hdfs Dfs-mkdir/사용자/둡/야구
HDFs Dfs-넣어/localfile/사용자/둡/야구
하이브를 사용 하 여 데이터베이스를 구축
데이터 분석 및 설계 완료 되는 대로 다음 단계는 데이터베이스를 구축 하는.
첫 번째 예제에서는 빌드를 한 경우 모든 예제, 소개 하지 않았다, 비록 나머지 스텝을 수행 하는 방법을 이해 하 수 있을 것 이다. 나 보통 일부 SQL 텍스트 스크립트를 구축 하 고으로 그들을 입력 또는 하이브에 붙여넣을. 다른 사람들이 데이터베이스 및 테이블을 만들려고 색조 또는 다른 도구를 사용할 수 있습니다.
단순, 하이브 셸 사용 했습니다. 고급 단계는 다음과 같습니다.
야구 데이터베이스 만들기
테이블 만들기
로드 테이블
양식을 올바른지 확인
외부 또는 내부 데이터베이스 및 테이블을 만드는 등 몇 가지 옵션이 표시 됩니다 하지만 경우에, 내부 기본 설정을 따르도록 해야 합니다. 실제로, 내부 의미 하이브 처리는 내부 데이터베이스 저장. 목록 1 하이브 포탄의 과정을 보여 줍니다.
1을 목록입니다. 데이터베이스 만들기
$ 하이브
만들 데이터베이스 야구;
야구 테이블을 만듭니다. 마스터
(Lahmanid int, playerID int, ManagerID int, Hofid int, birthyear int
birthmonth int, 생일 int, birthcountry 문자열, birthstate 문자열
Birthcity 문자열, deathyear int, deathmonth int, Deathday int
Deathcountry 문자열, 문자열 deathstate, deathcity 문자열
Namefirst 문자열, 문자열 namelast, namenote 문자열, namegive 문자열
Namenick 문자열, 무게 소수, 높이 소수, 박쥐 문자열
문자열, 데뷔 int, Finalgame int를 던졌습니다.
대학 Lahman40id int, lahman45id int, retroid int, STRING
Holtzid int, Hbrefid int)
행 형식 필드 종료 구분 ',';
다른 모든 테이블이이 이렇게 받습니다. 하이브 테이블에 데이터를 로드, 하이브 셸 열립니다, 다시 다음 다음 코드를 실행:
$hive
데이터 로드 지역 Inpath master.csv 덮어쓰기 테이블 야구에. 마스터;
하이브를 사용 하 여 표준화 된 데이터베이스를 구축 하
야구 데이터베이스 다소 표준화: 4 개의 주요 테이블 및 여러 보조 테이블. 다시, 하이브 이므로 스키마 읽기, 인덱스 또는 전통적인 rdbmses에서 참조 무결성이 없기 때문에 대부분의 데이터 분석 및 ETL 단계를 완료 해야. 인덱싱 기능을 사용 하려는 경우 다음 HBase와 비슷한 도구를 사용 해야 합니다. 목록 2에서 코드를 확인 하십시오.
2를 목록입니다. 쿼리 실행
$ 하이브
사용 야구;
선택 * 마스터;
마스터;에서 playerID를 선택
선택 A.playerid, B.teamid, B.ab, B.R, B.H, b.2b, b.3b, b.hr, B.rbi
마스터 A 조인 a.playerid에 B를 타자 = B.playerid;
결론
이것은 하이브 활용 및 데이터베이스를 구축의 이점: 그것은 혼란 세계에 대 한 구조를 만듭니다. 구조화 또는 반 구조화 된 데이터를 우리가 논의 처럼, 그것은 궁극적으로 대 한 누가 분석할 수 데이터, 누가, 그리고 어떻게 신속 하 게 작동 하기 위하여 그것을 얻을 수를 기반으로 보고서를 실행할 수 있습니다. 블랙 박스의 일종으로 하이브를 참조 하는 대부분의 사용자: 그들은 데이터에서 온다 또는 올바른 형식에서 데이터를 얻을 수 할 필요가 무엇을 걱정 하지 않는다. 또한 그것은 얼마나 어려운 그것은 통합 하는 데이터 유효성 검사 데이터는 정확한 상관. 즉 일반적으로 조직 하 여 구성 해야 합니다. 그렇지 않으면, 당신의 데이터베이스 데드 존 무제한 데이터는 영구적으로 저장 하 고, 그리고 아무도 수 또는 해당 데이터를 사용 하 여 됩니다.
복잡 한 데이터 웨어하우스는 더 이상 현장. 상황이 최근 몇 년 동안에서 개선 했다, 하지만 개념은 동일 하 게 유지:이 비즈니스 사용자 프로그래밍 논리 보다는 결과 원하는 사업 이다. 이 때문에 바로 시작은 하이브에 데이터베이스 구축.