'데이터 엔지니어'로 성장하기

정리하는 걸 좋아하고, 남이 읽으면 더 좋아함

Data 52

Superset) 너 왜이렇게 버전업이 빠르니? (7개월 만에 2.1에서 4.0)

작년에 superset POC하고 올해 적용하기로 했어요예전에 2.1 버전을 설치했는데, 지금 보니 4.1 이더라고요 오늘 포스팅에서는 각 버전 별 특징과실제 느낀 차이점에 대해 이야기할 예정입니다. 예상 독자는 아래와 같습니다.1. 버전 별로 무엇이 다른지 궁금한 분2. superset이 무엇인지 궁금한 분 [1. 버전 별 특징] 먼저 릴리스 날짜를 정리해보죠대충 1년에 1개씩 업시켰어요 3 버전이 7개월 정도로 짧네요. 저처럼 23년 3월에 테스트하다가 24년 11월에 보는 사람은3.x 가 없이 그냥 4.x 올라간 것처럼 느낄 수 있겠어요. 이제 버전 별 특징을 자세히 보죠 가장 많이 사용되는 버전은 2.1로 알고 있어요.Superset이 커뮤니티에서 언급되던게 22-23년이고그 때 구축된 시스템을 ..

Data/Superset 2024.11.24

Airflow) docker-compose로 dockerOperator 실행하기

급하게 회사 업무로 airflow를 사용할 일이 있었는데docker-compose에서 dockerOperator를 사용한 경험입니다# 상황airflow 3년 전에 너가 세팅했지? 지금 바로 해줘 Airflow야 여러 버전별로 여러번 설치해봤으니까 알겠다고 대답했습니다. 생각없이 그냥 작업하다가 삽질을 2번이나 했습니다.# 삽질1: k8s 버전 생각 안하고 기존 소스로 설치하기2년 전에 세팅해둔 gitlab repo(airflow helm 2.3.0)가 있길래,회사 on-prem 쿠버(1.30) 에 실행해봤어요.  그런데 역시나 버전이 에러가 났습니다.(멍청한 나)- 현상: scheduler가 죽은 다음 살아나지를 않음 [원인]혹시나가 역시나. 버전이 안맞음gitlab repo가 2년 전 세팅한- gitl..

Data/Airflow 2024.10.27

Jupyterhub) k8s 1.27에서 helm 에러 수정_bug

쿠버 버전을 업그레이드했다가, 에러가 발생했어요. 공식 github에서도 2일전에 bug라는 issue가 등록되었더라고요 요약 1. k8s 1.27에서 pod spawning이 안됨 2. 공식 인정 버그였음 3. image를 변경하고, deprecated된 api를 수정함 환경 - helm chart 3.0.0 - k8s v1.27.0 (기존에는 1.24) 에러 v1beta1.CSIStorageCapacity 관련 에러 - Failed to watch *v1beta1.CSIStorageCapacity: failed to list *v1beta1.CSIStorageCapacity: W0530 17:41:37.219051 1 reflector.go:324] k8s.io/client-go/informers/f..

Data/Jupyterhub 2023.06.11

trino) mysql insert 에러 발생, 방화벽 실수_could not create connection

K8S에 Trino를 올리고, 오픈 전 테스트 진행을 하고 있었어요. 요약trino이용해서 mysql insert하는데 `could not create connection`나옴.알고보니, k8s worker 중 1개 방화벽 설정을실수함문제최근에, Spark Thrift Server를 이용해 진행하던 data pipeline 작업을 Trino로 이전하고 있습니다. (hive metatstore로 s3의 parquet를 읽고, mysql에 insert하는 작업) 빠른 테스트를 위해서 trino-worker를 3개로 설정했었고, 문제 없다는 것도 확인했죠. 그런데 trino-worker 9개로 늘리고 퇴근을 했더니 Airflow에서 에러를 마구 뱉습니다. Select는 되는데, Insert할 때만 에러를 뱉더..

Data/Trino 2023.05.21

superset) trino 연결해서 그래프 그리기

superset에서는 pip install만 하면 db connection을 만들 수 있어요.그런데 어떻게 추가하는지 처음에는 당황스러울 수 있어요 예상 독자는 아래와 같아요.superset에 connection 맺으려고, dockefile 예시 찾는 분Superset 이 무엇인지 설명하는 이전 글은 아래 링크에 있어요https://mightytedkim.tistory.com/191 Supserset) 슈퍼셋 들어보셧나요? 사용 후기 듣고 가세요! (filter 조건 위치 변경해서 full scan 방지)요즘 '빅데이터 지탱하는 기술' 보고 있는데, superset이 나와서 정리해봣어요예상 독자는 아래와 같아요 - superset 사용하시려는 분 - 기본 구조를 아시고 싶으신 분 - filter를 whe..

Data/Superset 2023.04.23

Airflow) Base image에 라이브러리 추가하기

Airflow에 여러 operator들이 있는데,python Operator에서도 특정 라이브러리들이 필요할 때가 있어요 예상 독자는 다음과 같아요.1. K8S Airflow에서 추가 패키지들을 어떻게 관리하는지 궁금한 분2. dependency 최소로 db connection을 맺고 싶으신 분저 같은 경우, 3가지를 추가해요1. 디버깅을 위한 apt install - 디버깅의 경우 pod 안에서 curl, vim, tcpdump 등이 필요해서 root로 설치를 해줫어요 2. jdbc connection을 위한 jar- dependency 관리 측면에서 득이되기 때문에, 추가해주고 있어요. 3. pip install- 마지막으로는 jdbc 사용에 필요한 jaydebeapi, pymysql - s3fs, ..

Data/Airflow 2023.04.23

Spark) createOrReplaceTempView

빅지기 책 233쪽에 보면 `SparkSql을 사용하면, 데이터프레임을 SQL로 집계할 수 있다.` 라고 말하며 createOrReplaceTempView를 이야기해준다. 항상 df으로 작업하던 나에게 꿀같은 소식. 난 SQL이 더 편한다. df.createOrReplaceTempView('test') spark.sql("select * from test").show(3) +-------+---------+ | col1| col2| +-------+---------+ | a| 1| | b| 2| | c| 3| +-------+---------+ only showing top 3 rows하지 않는 한, 쿼리를 실행할 때마다 항상 최신의 데이터가 들ㅇ쳐진다. spark thrift server에서 thrif..

Data/Spark 2023.03.27

Supserset) 슈퍼셋 들어보셧나요? 사용 후기 듣고 가세요! (filter 조건 위치 변경해서 full scan 방지)

요즘 '빅데이터 지탱하는 기술' 보고 있는데, superset이 나와서 정리해봣어요예상 독자는 아래와 같아요 - superset 사용하시려는 분 - 기본 구조를 아시고 싶으신 분 - filter를 where절 안에서 사용하고 싶으신분 저는 k8s helm을 이용해서 구현했어요 사용 방법은 kibana와 비슷해서 편했고, 저는 trino를 데이터 소스로 사용했어요superset이란?- airbnb(2016)에서 만든 BI 툴 - 사용자 친화적인 UI데모 페이지 들어가면 볼 수 있어요 https://superset.demo.datahubproject.io/superset/welcome/Supersetsuperset.demo.datahubproject.io느낀 장/단점장점 - 공짜 - 연결할 데이터 소스가 많..

Data/Superset 2023.03.26

Trino) session timeout 설정_hive.s3.socket-timeout

trino를 도입하려고 알아보는데, 여기는 특정 파티션을 찍어서 파티션 업데이트하는게 없고 전체를 선택해야하더라고요. 그러다보니 초기 세팅시에 데이터가 너무 많아 socket timeout exception이 발생했어요 복사를 하지 않아 비슷한 로그를 복사해왔습니다. com.facebook.presto.spi.PrestoException: hive-metastore-server:9083: java.net.SocketTimeoutException: Read timed out 아래 명령어를 실행해서 그런건데요 CALL system.sync_partition_metadata('test', 'hgkim', 'add', true); 그래서 socket timqeout을 늘려줫어요 kind: ConfigMap ap..

Data/Trino 2023.03.15

Trino) Deview 2023에 나왔던 JMX 모니터링 따라해보기

최근에 Deview 2023에서 Trino 관련 내용 중에서 JMX 모니터링을 따라해보려고 해요 비록 현장 참여는 못했지만, 너무 정리잘된 pdf를 참고했습니다. 예상 독자는 아래와 같습니다. Trino 적용을 검토하는 분 s3, hdfs의 파일을 Ansi SQL로 읽고 싶으신 분 Impala, SparkSql 대체를 고려하시는 분 다룰 내용은 아래와 같습니다 JMX로 모니터링하기 https://deview.kr/data/deview/session/attach/[133]CQuery%20-%20%EC%9A%B0%EB%8B%B9%ED%83%95%ED%83%95%20Trino%EC%99%80%20%EC%8D%B8%ED%83%80%EA%B8%B0.pdf S Trino란? Trino는 2007년 Facebook에..

Data/Trino 2023.03.12