분류 전체보기 1385

2020-06-27 Joshua Tree National Park Camping(조슈아트리 국립공원)

2020-06-27 Joshua Tree National Park Camping(조슈아트리 국립공원) - Indian Cove campground 2020년 6월 27일, COVID19로 인한 Stay at Home이 3개월이 지난 시점에서, 일부 사이트들이 오픈하면서 캘리포니아에 위치한 조슈아트리 국립공원에서 캠핑을 했다. 운좋게 사이트가 오픈한는날 캠핑을 계획하여서 바로 스팟을 예약할수 있었다. 어릴때 보이스카웃 외에 처음하는 캠핑이어서 (심지어 군대에서도 텐트에서 자본적이 없다.) 많은 준비와 함께 설레는 마음으로 캠핑을 기대하였으나, 사막의 뜨거운 기후와, 태풍급으로 부는 바람으로 인해서 험난하고도 기억에 남는 캠핑이었다. 국립공원 입구는 아닌데, (대부분 입구 간판을 찍었는데 난 바보같이 이걸 ..

Kang's Life 2020.07.06

Hive 파티션 테이블에서 where 없는 쿼리 실행 방지

Hive 파티션 테이블에서 where 없는 쿼리 실행 방지 · Version : Hive 하이브에서 테이블 파티셔닝을 하는 가장 큰 이유는 빠르게 데이터를 검색하기 위해서이다. 아주 큰 데이터가 있더라도 파티션 스키마가 검색하려는 범위 필터링을 반영한다면 파티셔닝 테이블은 쿼리의 성능을 극적으로 올려준다. 그래서 특정값을 필터하는 WHERE 절에 파티션 조건을 포함하는데 이러한 조건을 “파티션 필터”라고 부른다. 그러나 파티셔닝이 잘 되어 있다고 하더라도, 테이블 데이터가 많거나 파티션 개수가 많다면 거대한 맵리듀스 작업을 유발할 수 있다. 이러한 맵리듀스의 부하를 방지하기 위해 WHERE 절에 파티션 필터가 없는경우 쿼리 실행이 되지 않도록 옵션을 설정할 수 있다. 아래 스크립트는 WHERE절에 파티션..

Hive 매니지드 테이블 및 외부 테이블

Hive 매니지드 테이블 및 외부 테이블 · Version : Hive 하이브에는 매니지드 테이블과 외부 테이블이라고 불리는 테이블 저장 방식이 있다. 이 둘의 차이점은 데이터 소유자가 하이브이냐, 아니냐로 크게 구분할 수 있다. 매지니드 테이블 (Managed Table)은 내부 테이블이라고도 불리며 하이브 속성(hive.metastore.warehouse.dir)에서 정의한 디렉터리의 하위 디렉터리를 만들어서 데이터를 저장한다. 하이브에서 매니지드 테이블을 삭제할때 테이블내의 데이터가 삭제된다. 외부 테이블은 테이블을 생성할때, EXTERNAL 키워드를 사용하며, LOCATION절에서 지정한 위치에 데이터가 존재한다는것을 하이브에게 알려준다. 하이브에서 외부 테이블을 삭제하면, 하이브 내에서 스키마만..

HDFS 저장소에 데이터를 압축해서 저장하면 더 좋을까?

HDFS 저장소에 데이터를 압축해서 저장하면 더 좋을까? · Version : HDFS HDFS 클러스터에서 데이터를 저장할때, 압축을 해서 보관하는것이 더 좋을까? 그냥 저장하는 것이 좋을까? 결론부터 말하면 반은 맞고 반은 틀리다. 즉, 압축의 특성을 잘 이해하고 사용하면 좋지만, 그렇지 못할경우 오히려 HDFS의 장점을 활용하지 못할 수도 있다. 맵리듀스가 처리할 데이터를 압축하는 방법을 고려할때, 압축 포맷이 분할을 지원하는지 여부를 이해하는것이 중요하다. 예를들어 HDFS에 1GB의 데이터 파일을 저장한다고 가정한다. 64MB 블록으로 처리할 경우 16개의 블록으로 나뉘어 HDFS에 저장된다. 맵 리듀스에서 이 파일을 입력 데이터로 사용할 경우 16개의 독립적으로 처리되는 입력 분할을 생성할 것..

Hive 테이블

Hive 테이블 · Version : Hive 하이브에서 테이블을 생성 할때에는 SQL 규칙을 따르지만 테이블의 데이터 파일 생성 위치나 사용할 포맷등 확장기능을 사용하여 유연성을 제공한다. CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name -- (Note: TEMPORARY available in Hive 0.14.0 and later) [(col_name data_type [column_constraint_specification] [COMMENT col_comment], ... [constraint_specification])] [COMMENT table_comment] [PARTITIONED BY (col_name d..

HiveQL과 Hive 데이터베이스

HiveQL과 Hive 데이터베이스 · Version : Hive HiveQL은 Hive에서 사용하는 쿼리 언어이다. SQL과 유사하지만 SQL과 다르며 표준 ANSI SQL을 지원하지 않는다. 하이브는 로우(ROW) 레벨의 삽입과 변경, 삭제를 지원하지 않으며, 트랜잭션 또한 지원하지 않는다. 하지만 하둡이 지원하는 범위 안에서 성능 확장을 위해 다양한 기능을 제공하며, 사용자가 정의한 확장과 외부 프로그램을 하이브와 연동할 수도 있다. 하이브에서 데이터베이스 개념은 단지 테이블의 카탈로그 또는 네임스페이스이다. 데이터베이스는 논리적인 그룹을 구성할 수 있으며 대규모 작업시 동일한 테이블명의 충돌을 방지할수도 있다. 데이터베이스를 별도로 지정하지 않으면 기본 데이터베이스(default)를 사용한다. 아..

Hive 텍스트파일 인코딩

Hive 텍스트파일 인코딩 · Version : Hive 텍스트 데이터의 필드를 구분할때, 탭(TAB) 또는 콤마(,)를 많이 사용한다. 이러한 일반적인 구분 기호는 데이터안에 콤마나 탭이 포함되어 있을 경우 전체 데이터 필드가 맞지 않는문제가 발생할 수 있어 주의해야 한다. 하이브도 탭 또는 콤마 같은 필드 구분자를 지원하지만 앞에서 말한 이유 때문에 일반적으로 잘 사용하지 않는 여러 제어 문자를 기본 구분 기호로 사용한다. 아래표는 하이브에서 제공하는 구분기호이다. 만약 필드에서 탭으로 분리하려면 ‘\t’를 사용하고, 콤마의 경우 ‘,’를 사용한다. 구분기호 설명 \n 레코드 줄 바꿈 ^A 모든 컬럼을 분리한다. CREATE TABLE 문에서 명시적으로 지정할때는 8진수 코드 ‘\001’을 사용한다...

Impala Connection refuse Error

Impala Connection refuse Error - Couldn't open transport for hd-master:26000 (connect() failed: Connection refused) · Version : CDH 6.3 파이썬의 pyimpala를 사용하여 Hadoop Impala에 데이터를 입력하는 클라이언트가 있는데, 어느날부터 아래와 같은 오류를 출력하며 데이터가 입력되지 않았다. InternalException: Error requesting prioritized load: Couldn't open transport for hd-master:26000 (connect() failed: Connection refused) Error making an RPC call to Cat..

Hive 데이터 타입

Hive 데이터 타입 · Version : Hive Hive는 여러 크기의 정수형과 부동소수점, 불린형과 임의의 길이를 가지는 문자열, TIMESTAMP, BINARY 타입등을 제공한다. 각각의 데이터형은 자바로 구현되어 있어 자바 데이터 타입과 동일하게 하이브에서 사용된다. 타입 크기 리터럴 문법 예제 TINYINT 1바이트 정수형 20 SMALLINT 2바이트 정수형 20 INT 4바이트 정수형 20 BGINT 8바이트 정수형 20 BOOLEAN TRUE 또는 FALSE TRUE FLOAT 단정도 부동 소수점 3.14159 DOUBLE 배정도 부동 소수점 3.14159 STRING 문자의 시퀀스, 또는 문자열 설정가능. 작은 따옴표 및 큰따옴표 사용가능 ‘Hello Hive’, “Hello Hive”..

NoSQL 특징및 분류

NoSQL 특징및 분류 NoSQL은 아래와 같은 속성을 가지고 있다. · Key-Value (키-밸류) 값 또는 이를 응용한 데이터 모델 · 상대적으로 값싼 다수의 하드웨어를 이용 · 데이터는 분산된 노드에 파티션 및 복제되어 저장 · 데이터의 정합성 보다 단절내성에 대한 요구사항에 목적 · 2단계 커밋의 트랜잭션 수준보다, 정족수 기반의 트랜잭션 선호 데이터 모델은 아래와 같이 분류 할 수 있다. · Key-Value : 가장 단순한 데이터 모델로, 키와 바이너리 타입의 값을 저장소에 저장하는 구조이며, 데이터 조회또하 키로만 조회할 수 있다. · Column : 관계형 데이터베이스와 비슷하게 데이터는 컬럼에 저장되며, 트에빌, 컬럼등과 같은 스키마가 존재한다. · Document : 데이터의 저장단위..

NoSql, MemoryDB 2020.06.09