분류 전체보기 1191

[Python] PyMySQL - DELETE 하기

개요 2022.11.05 - [Python] PyMySQL - MySQL SELECT 하기 2023.11.17 - [Python] PyMySQL - INSERT 하기 위 두 개 글에서 Python을 이용해 MySQL에 저장된 데이터를 조회하고, 데이터를 테이블에 저장했다. 이번 글에서는 테이블에 저장한 데이터를 삭제해보려고 한다. 예시 테이블 예시로 위와 같은 users 테이블이 있다고 하자. DDL 더보기 CREATE TABLE users ( NAME VARCHAR(10), EMAIL VARCHAR(50), PRIMARY KEY (NAME) ); INSERT INTO users(NAME, EMAIL) VALUES ('daum', 'test@daum.net'), ('june', 'june@tistory...

Python 2023.11.21

[MySQL] 집계 함수 ALL, ANY 구현

개요 Python에는 여러 데이터에 대한 참, 거짓을 판단할 때 사용할 수 있는 all, any 함수가 존재한다. 참고 : 2022.10.08 - [Python] any/all - 여러 요소의 참/거짓 확인 비슷한 방식으로 MySQL에서 SQL을 이용해 그룹 별 여러 데이터에 대한 참, 거짓을 판단하고 싶다. 방법을 알아보자. 참고로 Subquery로 제공되는 ALL, ANY가 아니다. 예시 테이블 | month | day | amount | | ----- | --- | ------ | | 1 | 3 | 9000 | | 1 | 5 | 8000 | | 3 | 15 | 20000 | | 6 | 14 | 110123 | | 6 | 18 | 3000 | | 12 | 20 | 101000 | | 12 | 25 |..

Database 2023.11.20

[Python] PyMySQL - INSERT 하기

개요 2022.11.05 - [Python] PyMySQL - MySQL SELECT 하기에서 python으로 MySQL에 저장된 데이터를 조회해 봤는데, 이번 글에서는 INSERT를 수행해보려고 한다. cursor.execute PyMySQL로 일회성 SQL을 실행할 때는 cursor 클래스에 정의된 execute 함수를 사용한다. 예시로 다음과 같은 users 테이블이 있다고 하자. DDL 더보기 CREATE TABLE users ( NAME VARCHAR(10), EMAIL VARCHAR(50), PRIMARY KEY (NAME) ); INSERT INTO users(NAME, EMAIL) VALUES ('june', 'june@tistory.com'), ('passwd', 'passwd@tisto..

Python 2023.11.17

[MySQL] INSERT ~ ON DUPLICATE KEY UPDATE (insert or update)

UPSERT UPDATE, INSERT의 합성어로, 테이블에 추가하고자 하는 데이터의 기준 값이 데이블에 없으면 데이터를 추가하고 있으면 데이터를 갱신하는 것을 의미한다. 즉, INSERT OR UPDATE라고 할 수 있다. 데이터베이스 엔진마다 지원 여부와 문법이 다른데, MySQL은 INSERT ~ ON DUPLICATE KEY UPDATE 문으로 지원한다. INSERT ~ ON DUPLICATE KEY UPDATE INSERT INTO table(key1, key2, col1, col2) VALUES(val1, val2, val3, val4) ON DUPLICATE KEY UPDATE col1 = val3, col2 = val4; INSERT문에 ON DUPLICATE KEY UPDATE을 지정하면..

Database 2023.11.16

[Spark] RDD

RDD Resilient Distributed Dataset의 약어로, Spark의 기본 데이터 구조이다. 데이터는 여러 분산 노드에 걸쳐 저장되고, 변경되지 않는다. 만약 변경이 필요한 경우 새로운 데이터셋을 만들어야 한다. 또한 병렬로 처리할 수 있고, 장애가 발생하는 경우 스스로 복구할 수 있다. 연산 RDD는 딱 두 가지 연산만을 제공한다. Transformation 기존 RDD 데이터를 변경해 새로운 RDD 데이터를 생성한다. 특정 데이터만 추출하는 filter, map 등의 작업이 해당된다. Action RDD로 값을 계산하여 결과를 생성한다. 최종 결과를 반환하거나 외부 저장소에 쓸 수 있다. 데이터의 수를 세는 count, 첫 번째 요소를 반환하는 first 등의 연산이 해당된다. 특징 1..

Hadoop EcoSystem 2023.11.15

[Spark] 실행 구조

구조 Spark 애플리케이션은 클러스터에서 독립적인 프로세스 집합으로 실행되며, 메인 프로그램인 드라이버 프로그램의 SparkContext 객체가 조정한다. SparkContext는 독립 실행형 클러스터 매니저, Mesos, YARN, Kubernetes 등 여러 클러스터 관리자에 연결하여 클러스터의 리소스를 관리한다. 또한 JAR, Python으로 정의된 애플리케이션을 데이터를 저장하고 처리하는 Executor 프로세스로 전달한다. 각 애플리케이션은 실행 시간 동안 유지되고 멀티스레딩으로 처리되는 자체적인 executor 프로세스를 가진다. 이는 스케쥴러와 executor에서 애플리케이션을 격리할 수 있다는 이점을 가지지만, 외부 스토리지 시스템 없이는 서로 다른 Spark 애플리케이션 간 데이터를 공..

Hadoop EcoSystem 2023.11.14

[Spark] 구성 요소

개요 2023.11.10 - Apache Spark 이란에서 Spark의 개념과 특징 정도만 정리했는데, 이 글에서는 Spark의 구성 요소에 대해 정리해두려고 한다. 대개 Spark의 구성 요소라고 함은 위와 같은 그림으로 표현되는 것 같다. 각 요소에 대해 적어둔다. Spark Core Apache Spark 프레임워크의 핵심으로, Spark Core에 구축된 구성요소가 요구하는 실행 엔진을 제공한다. 내장 메모리 컴퓨팅과 외부 스토리지 시스템에 저장된 참조 데이터셋을 제공하며, 기본 I/O 함수, 스케쥴링, 모니터링, 장애 복구, 메모리 효율 관리 등을 수행한다. RDD라고 하는 자료 구조를 사용한다. Spark SQL Spark SQL은 SQL과 유사한 방식으로 데이터를 처리하기 위해 명명되었는데..

Hadoop EcoSystem 2023.11.13

Apache Spark 이란

Spark 머신 러닝 및 AI 애플리케이션을 위한 오픈 소스 데이터 처리 엔진. 대규모 데이터를 처리하기 위한 오픈소스이다. SQL, 스트리밍 데이터 ,머신러닝, 그래프 처리 등을 위한 기능을 제공하며, 빅데이터 처리에 필요한 컴퓨팅 속도, 확장성 등을 고려하여 설계되었다. 병렬성과 내결함성을 바탕으로 작업을 어려 컴퓨터로 구성된 클러스터에 분산시킬 수 있고, 인메모리 처리 엔진으로 다른 엔진보다 빠른 처리 속도를 기대할 수 있다. Spark는 Java, Scala, Python, R 등에서 사용할 수 있다. 특징 Apache Spark는 다음과 같은 특징을 가진다. 속도 (Speed) : 디스크 읽기/쓰기 작업을 최소화하여 Hadoop보다 10배, 100배 빠르게 처리할 수 있다. 내결함성 (Fault..

Hadoop EcoSystem 2023.11.10

[Jenkins] Pipeline - 조건문 if

개요 2023.11.08 - [Jenkins] Pipeline - for 반복문 에서는 Jenkins 파이프라인에서 반복문을 사용하는 방법을 확인했는데, 이번 글에서는 조건문 if를 사용해보려고 한다. if 문 소괄호 내에 조건절을 기재하고, 중괄호를 블록을 묶는다. if(condition) { statement #1 statement #2 ... } else{ statement #3 statement #4 } 사용 예시 아래 예시는 간단히 boolean형 데이터로 초기화한 변수 값에 따라 분기 처리한 파이프라인이다. true 또는 false를 사용할 때는 전체 소문자로 기재한다. pipeline { agent any stages { stage('Example') { steps { script { boo..

Jenkins 2023.11.09

[Jenkins] Pipeline - 반복문 for

개요 2023.11.02 - [Jenkins] pipeline - 변수 선언 및 사용 2023.11.07 - [Jenkins] Pipeline - 동적 변수 사용 위 두 개 글에서 Jenkins Pipeline 상에서의 변수 사용에 대해서 알아보았는데, 이번 글에서는 반복문을 사용해보려고 한다. for 문 script 블록 내에서 다른 프로그래밍 언어처럼 for 문을 사용할 수 있다. for (int i = 0; i < 10; ++i) { echo "$i" } 예시 ) pipeline { agent any stages { stage('Example') { steps { script { for (int i = 0; i < 3; ++i) { echo "$i" } } } } } } for - in 만약 반복 ..

Jenkins 2023.11.08