duckdb 에서는 Parquet 은 지원하는데, orc 는 지원하지 않는다. 그리고 이슈를 찾아보면 별로 지원할 생각도 없는거 같다.그래서 cli 툴로는 접근하는 제한이 있는데, apache arrow 를 경유하면 다양한 포맷을 읽는것이 가능하다.여기서는 pyarrow 를 이용해서 접근하는 예제를 알려주도록 하겠다.당연하지만, pip install pyarrow 가 선행되어야 한다. 해결방법다음과 같이 pyarrow.orc 를 이용해서 orc 파일을 읽어내는게 가능하다.아래 예제는 hdfs://my/user/user/export/sample/* 파일이 orc 포맷으로 저장되어있을때 읽는 예제이다. hadoop 에 저장된 orc 파일을 읽어내는 샘플코드를 정리했다.import pyarrow as paim..
이번에 streamsets 를 통해 생성된 스트리밍 데이터를 마이그레이션 할 일 이 있어서 테스트해본 간단한 데이터이다. 참고로 avro 포맷에 스트림으로 처리되다보니 파일갯수는 많은 편이었다. 이때, json 텍스트가 많은 A 테이블과, 일반적인 필드값 수준의 B 테이블이 존재해서 몇가지 압축알고리즘별 실험을 해보았다. 참고로, hive 에서 지원하는 avro 압축알고리즘은 snappy, bzip2, deflate 등이 존재한다. (xz 압축은 테스트 실패함) https://github.com/apache/avro/blob/master/lang/java/avro/src/main/java/org/apache/avro/file/CodecFactory.java#L33-L36 AVRO 압축 하여 저장하는 방법..
hive 테이블의 경우, 파일포맷(text, parquet, rcfile, sequence, orc) 별로 테이블을 선언하는 쿼리가 조금씩 차이가 있어서 create table 하는 방법과, 테이블의 파일포맷별 압축 알고리즘(gzip or zlib, snappy)을 선택하는 방법이 달라서 정리한 문서이다. (옛날에 방치된 내 블로그에 정리한글인데 옮겨옴) 1. text 파일 아래와 같이 text 파일 포맷을 사용하는 Hive 테이블을 만들때는 특별히 선언할것은 없다. 단, 압축을 하기위해서 압축알고리즘을 지정하는 방법은 SET 을 통해 환경변수로 변경후 insert 를 하면 된다. create table tb_text ( ymd String, tag String, cnt int ) ROW FORMAT D..