일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 카프카
- 크롤링
- Python
- CDC
- KubernetesPodOperator
- Java
- polars
- 윈도우
- docker
- 쿠버네티스
- airflow
- spring boot
- kafka
- DBT
- freshness
- UI for kafka
- 동적 차트
- 파이썬
- proerty
- k9s
- mysql
- Materializations
- query history
- numpartitions
- spark
- 도커
- dbt_project
- 모바일
- ksql
- bar cahrt
- Today
- Total
목록분류 전체보기 (220)
데이터 엔지니어 이것저것

오픈소스 git GUI 클라이언트 비교 대상 및 순위깃 크라켄소스깃깃허브 데스크탑1등은 깃 크라켄 이지만, 유료 (1년에 약 15만원, 계정 당), 가격 부담이 있어 무료 툴을 사용 소스깃이 것허브 데스크탑보다 순위가 높은 이유는, 깃허브 데스크탑에는 그래프 기능을 미지원.( 약 5년째 미반영 ) 링크 : https://github.com/sourcegit-scm/sourcegit?tab=readme-ov-file#screenshots 설치법 ( 윈도우 ) winget install SourceGit 이후 win + R 을 통해 SrouceGit 실행 화면

Airflow 에서 SparkSubmitOperator 을 하기 위한 jar 파일 생성법 DIR 안에 여러개의 스칼라 코드가 존재하고, 여러개의 main 클래스가 존재하여 이를 한번에 jar 파일로 생성했을때실행이 안되고 에러가 발생하는 문제가 존재하여 이를 해결하는 방법 작성. project 폴더에 plugin.sbt 파일 생성build.sbt 작성 plugin.sbt 파일 생성project 하위 폴더에 plugin.sbt 파일 생성 addSbtPlugin( "com.eed3si9n" % "sbt-assembly" % "2.3.0")jar 파일 생성을 위한 플러그인 추가 build.sbt 작성기존 sbt에 설정 추가 libraryDependencies ++= Seq( "org.apache.spark..

목표 : 로컬환경에서 airflow 와 spark를 연동하여 사용 로컬에서 airflow와 spark를 연동해서 사용하기 위해서는 java가 필요하기 떄문에 base 이미지 부터 수정이 필요. DockerfileFROM apache/airflow:2.10.4-python3.12USER rootRUN apt-get update && \ apt-get install -y openjdk-17-jdk && \ apt-get install -y ant && \ apt-get clean;# Set JAVA_HOME environment variableENV JAVA_HOME /usr/lib/jvm/java-17-openjdk-amd64ENV PATH $JAVA_HOME/bin:$PATHUSER ai..
시간 복잡도란?계산 복잡도 이론에서 시간 복잡도는 문제를 해결하는데 걸리는 시간과 입력의 함수 관계를 가리킨다 시간 복잡도를 이용하여, 프로그램의 시간이 얼마나 걸릴지 대략적으로 예상이 가능표기법은 대문자 O 를 사용한다 ( Big-O 표기법 )최악의 경우에 시간이 얼마나 걸릴지 알 수 있다 Big-O 표기법 O(1): 상수 시간 복잡도, 입력 크기에 상관없이 항상 같은 시간이 걸림.O(log n): 로그 시간 복잡도, 입력 크기가 커질수록 로그에 비례하여 시간이 증가함.O(n): 선형 시간 복잡도, 입력 크기에 비례하여 시간이 증가함.O(n log n): 선형 로그 시간 복잡도, 정렬 알고리즘에서 주로 발생함.O(n^2): 이차 시간 복잡도, 중첩 반복문을 사용하는 경우.O(2^n): 지수 시간 복잡도..

PolarsPandas와 같은 기존의 데이터 처리 라이브러리가 가진 성능적 한계를 극복하기 위해 탄생Rust 기반으로, 멀티스레딩과 병렬 처리를 지원, 대규모 데이터셋을 보다 빠르고 효율적으로 처리할 수 있도록 설계 요약 : Spark를 사용하기엔 데이터가 작고, Pandas로 돌리기엔 데이터가 많을때 좋다 속도 배경기존 Pandas를 대체하기 위한 도구 탐색 평소에는 문제 없이 동작을 잘하지만, 대용량 업데이트 시, OOM이 발생.이를 해결하기 위해 Spark를 도입하기에는 비용문제와, 기본 로직을 많이 바꿔야하는 이슈 발생Spark를 사용해본적이 없어 도입 및 이슈 발생시 대처하는데 시간이 오래걸림. 특징Rust 기반으로, 외부 종속성이 없다I/O : 일반적인 데이터 저장 계층에 대한 최고 수준의 지..

목표python locust를 이용해서 Spring boot에 스트레스 테스트를 진행하면서 들어오는 데이터(메시지)를kafka에 전송하고 이를 streams를 통해 해당 데이터를 파싱하여 다시 카프카에 적재하는 로직을 구현하기 위함 Spring boot logback 기능을 사용하여 log를 카프카로 전송. 추가로 사용한 lib는 더이상 업데이트가 진행되고있지않아, 다른 것을 찾아야함. Spring boot 세팅 buidl.gradle // kafka 관련 설정 implementation 'org.springframework.kafka:spring-kafka' // logback-kafka-appender 관련 설정 implementation "com.github.danielwegener:logback-..
파이썬 테스트 코드를 작성할때 setup에 필요한 데이터 셋들이 필요한 경우가 많다.특히 업무에 사용할때 필요한 데이터의 경우 간혹 csv, excel 등의 파일이 있는데, 이를 파일로 관리하거나 할경우관리하기도 어렵고 제일 문제는 csv 컨트롤시 여러 에러가 발생하기 때문이다 이를 방지하기 위해 고민을 하던 와중, airflow PR을 날리기 위해 테스트 코드를 작성하다가 airflow의 경우데이터를 sqlite에 세팅을 해두고 사용하는것을 보고 이를 따라하기로 했다. import sqlite3import unittestclass TestSQLite(unittest.TestCase): def setUp(self): # 메모리 내에 데이터베이스를 생성 self.conn = ..

Spark 에서 Query를 날릴때 한번에 많은 양을 가져오면 OOM 이나 시간등을 체크해야하는데설정시, query에 where 절로 나눠서 호출을 한다 라는 내용만 있고 구체적으로 어떻게 동작하는지 확인하기 위함. 테스트를 위해 약 100GB의 데이터 셋을 준비 val dbProperties = new java.util.Properties() dbProperties.setProperty("user", "root") dbProperties.setProperty("password", "mysql") dbProperties.setProperty("driver", "com.mysql.cj.jdbc.Driver") // Specify the JDBC driver dbProperties..