데이터 엔지니어링
-
Oracle UPDATE 문 사용법과 다양한 예제 모음데이터 엔지니어링/SQL 2024. 11. 14. 21:59
Oracle에서 UPDATE 문은 테이블의 기존 데이터를 수정할 때 사용됩니다. 기본적으로 UPDATE 문은 특정 조건에 맞는 레코드의 특정 컬럼 값을 업데이트할 수 있습니다. 구문과 함께 다양한 예제를 보여드릴게요.기본 구문UPDATE 테이블명SET 컬럼명 = 값[WHERE 조건];테이블명: 데이터를 수정할 테이블 이름입니다.SET: 수정할 컬럼과 값을 지정합니다.WHERE: 조건에 따라 특정 레코드를 선택합니다. 이 조건이 없으면 모든 레코드가 업데이트되므로 주의가 필요합니다.예제 1: 기본적인 UPDATE 문 사용다음은 employees 테이블에서 employee_id가 100인 직원의 salary를 5000으로 수정하는 예제입니다.UPDATE employeesSET salary = 5000WHER..
-
[Spark] Postgre의 데이터 JDBC 커넥터 활용하여 병렬 처리 해보기(feat, partitionColumn,lowerBound, upperBound, numPartitions)데이터 엔지니어링/Spark 2023. 2. 12. 14:10
Spark에서 직접 PostgreSql 연결하는 법 Spark는 java기반 오픈 소스 툴이기 때문에 JDBC(Java Database Connectivity)를 이용하여 데이터베이스에 접근 할 수 있습니다. 아래 코드가 JDBC를 이용하여 select를 할 수 있는 상태를 만들어 놓은 것이다. jdbcDF라는 객체를 아래와 같이 만들고 쿼리를 날리면 데이터를 조회 할 수 있습니다. jdbcDF = spark.read \ .format("jdbc") \ .option("url", "jdbc:postgresql:dbname") \ .option("dbtable", "public.tablename") \ .option("user", "username") \ .option("password", "passwor..
-
[Airflow] User_defined_macros를 이용하여 jinja template의 사용자 정의 변수 활용하기데이터 엔지니어링/AirFlow 2023. 2. 12. 13:22
안녕하세요 까치입니다. 오랜만에 Airflow 포스팅을 하게 되었습니다. DAG의 모든 task에서 공통 변수를 활용하는 경우가 많은데 이때 어떻게 해야할지 공부하게 되어 포스팅 하게 되었습니다. 먼저 user_defined_macros라는 속성에 변수를 등록하면 그 당시에 활용하는 DAG안에 공통 변수를 설정 할 수 있습니다. 아래 코드는 완성 코드 입니다. MACROS_VAR에 공통 변수로 활용할 값을 설정하고, DAG안에 user_defined_macros라는 속성에 넣었습니다. from datetime import datetime, timedelta from airflow import DAG from airflow.operators.bash import BashOperator default_arg..
-
데이터 측면에서 웹에서 발생하는 데이터 종류 알아보기(Transaction, Metadata, Event, Log, Aggregation)데이터 엔지니어링/데이터 엔지니어링 기본 2023. 1. 7. 17:34
안녕하세요 오늘은 웹에서 발생하는 데이터의 종류에 대해 좀 알아보면 좋을 것같아 이 글을 작성하게 되었습니다. 데이터를 다루다 보면 종류에 맞게 데이터를 설계하거나 머리속에 어느 정도의 수준의 데이터 인지 인지할 필요가 있는데요. 이 글로 아 이런 데이터는 이런 목적의 데이터 구나 하고 넘어가면 좋을 것 같습니다. Transaction Data 비즈니스나 시스템에서 빈번하게 생성되고 업데이트 되는 데이터를 의미한다. 즉, 트랜잭션 데이터는 일상적인 구매 및 판매 비즈니스 프로세스를 실행하거나 지원하는 동안 다양한 애플리케이션에서 생성되는 데이터입니다. 말이 어려운데 예로 들면, 음악 재생프로그램에 의하면, 다음과 같은 데이터가 Transaction Data입니다. 재생 목록에 음악 추가 및 삭제 이용자가..
-
[Prometheus] Service Discovery 파일 기반 Config파일 작성하기데이터 엔지니어링/Prometheus 2022. 12. 21. 20:23
Service Discovery란? 오늘은 Service Discovery에 대해 알아보도록 하겠습니다. 마이크로서비스 아키텍처(MSA)로 구성되어 있는 서비스들은 각자 다른 IP와 Port를 가지고 있는데 이러한 서로 다른 서비스들의 IP와 Port 정보에 대해서 저장하고 관리할 필요가 있어서 이것을 관리하는 것이 Service Discovery라고 합니다. 이론적으로 자세한 내용이 있지만 Prometheus측면에서 보면 Prometheus는 yml파일로 service들을(global, alerting, scrape_configs 등) 관리하게 됩니다. 이런 서비스들이 많아지거나 적어지거나 할 경우 서버를 내렸다 올렸다 하는 것이 아니라 파일 형식으로 관리하면 동적으로 작동할 수 있게 됩니다. 먼저 P..
-
[Prometheus 개념] Jobs, Instances, Group에 대해 알아보기데이터 엔지니어링/Prometheus 2022. 12. 21. 20:21
목차 Prometheus에서 묶음 모니터링은 어떻게 관리할까? job이란? Instance이란? Group이란? Yml파일 구성 예시 실습해 보기 Prometheus에서 묶음 모니터링은 어떻게 관리할까? 3개의 web 서버를 모니터링한다고 가정해 보자 그런데 한 서버만 정재 해서 모니터링 값을 보고 싶을 때도 있을 것이고 묶음으로 전체 서버의 값을 보고 싶을 때도 있을 것이다 이럴 땐 어떻게 해야 할까? 이런 문제를 해결하기 위해 Prometheus에서는 Job과 Instance를 사용한다. 아래 그림으로 예를 들어 보면 이해하기 쉽다. Job이란? Job은 Instance들의 집합이라고 이해하면 쉽다. 내가 한 묶음으로 보고 싶은 Web server를 모두 모아서 Job으로 구성하면 된다. 위에 보는 ..
-
[Prometheus 개념] Metric Type 과 Label에 대해 알아보고 Custom Exporter(=Client Library with python)작성하여 값 받아보기데이터 엔지니어링/Prometheus 2022. 12. 21. 20:18
Metric이란? 메트릭이란 숫자 측정임. 시계열은 변경 사항을 시간 단위로 기록됨을 의미함. 애플리케이션의 특정 방식으로 작동하는 이유를 이해한 느데 중요한 역할을 함. 예를 들어 DB가 속도가 늘어졌다고 하면 쿼리의 작동 수는 얼마나 되는지 활성 사용자는 몇 명인지 등의 내용을 시간대 별로 쉽게 파악할 수 있음. Lable란? Lable은 Key-Value의 쌍을 얘기함 Prometheus에서 Lable은 Key-Value를 이용하여 특정 내용을 서칭하는 용도로 사용된다. Prometheus에서 Metric 표기법 기본 작성법 - {=,...} 예시 - api_http_requests_total {method="POST", code="200" , handler="/messages"} Metric = ..
-
[Prometheus] Prometheus와 Grafana 연동하고 Node_exporter 대쉬보드 만들기, Grafana Dashboard(데이터 엔지니어링/Prometheus 2022. 12. 19. 21:11
목차 Grafana란? Grafana 설치하기 Grafana 시작하기 Grafana 접속 Grafana Data Source 만들기 Grafana Dashboard 만들기 Grafana Dashboard(= Template) 사용하기 Grafana란? Grafana Lab에서 제공하는 오픈소스 데이터 시각화/모니터링 툴입니다. 보통 모니터링 툴로 사용한다고 합니다. BI 툴은 더 좋은 게 많으니깐요. 홈페이지 접속하시면 다양한 정보가 있습니다. Grafana는 데이터를 이관해서 사용하는 것이 아닌 데이터를 그 때 당시에 조회를 해서 시각화해주므로 성능이 좋습니다. 그래서 확장성이 좋으며 지원하는 Datasource도 꽤 있고, Plugins, 접근제어, Alert 같은 기능도 구현되어있어 모니터링 툴로는..