Minding's Programming 썸네일형 리스트형 [프로그래머스 코딩테스트/MySQL] 특정 물고기를 잡은 총 수 구하기 문제 설명 낚시앱에서 사용하는 FISH_INFO 테이블은 잡은 물고기들의 정보를 담고 있습니다. FISH_INFO 테이블의 구조는 다음과 같으며 ID, FISH_TYPE, LENGTH, TIME은 각각 잡은 물고기의 ID, 물고기의 종류(숫자), 잡은 물고기의 길이(cm), 물고기를 잡은 날짜를 나타냅니다. Column name Type Nullable ID INTEGER FALSE FISH_TYPE INTEGER FALSE LENGTH FLOAT TRUE TIME DATE FALSE 단, 잡은 물고기의 길이가 10cm 이하일 경우에는 LENGTH 가 NULL 이며, LENGTH 에 NULL 만 있는 경우는 없습니다. FISH_NAME_INFO 테이블은 물고기의 이름에 대한 정보를 담고 있습니다. FIS.. 더보기 [Kafka/Python] Kafka 설치 방법(Conduktor) 실시간 데이터 처리 플랫폼의 대표라고 할 수 있는 Kafka에 대해 공부하기 위해서, Kafka를 어떻게 설치하는지 알아보려고 한다. 이 글에서는 Kafka를 Docker Container로 실행할 예정이기 때문에, 기본적으로 Docker가 설치되어 있어야 한다. Docker 설치는 아래 글을 참고하길 바란다. (Windows의 경우 WSL2 설치가 필요할 수 있다.) Docker의 개념 및 기본 실행 명령어 [Docker] Docker의 개념 및 기본 실행 명령어Docker Docker는 애플리케이션을 컨테이너라는 독립된 환경에서 실행할 수 있게 해주는 Linux 컨테이너 기반 플랫폼이다. 애플리케이션과 관련된 라이브러리와 종속성을 하나의 패키지로 묶어 어디minding-deep-learning.tis.. 더보기 [Python/Unittest] Unittest Unittest?Python의 테스트 프레임워크인 unittest는 코드 상의 특정 기능을 테스트하기 위해 작성된다. 일반적으로 특정 입력을 주고 예상된 출력이 나오는지의 형태로 테스트한다. 최근 CI/CD의 자동화와 안정성이 중요해지면서 전체 코드의 테스트 커버리지의 중요성도 함께 높아졌는데, 이 때 Python코드에서는 unittest가 일반적으로 사용된다. unittest는 테스트 케이스를 class 단위로 작성하고, 그 안에 포함된 여러가지 메서드를 통해 기능을 테스트한다. 아래 코드는 unittest의 예시다.import unittestclass TestStringMethods(unittest.TestCase): def test_upper(self): self.assertEqu.. 더보기 [Spark/Hive] Spark에서 Hive 메타 스토어 사용하기 Spark의 DB와 테이블SparkSQL을 통해 임시 테이블을 만들어 SQL 조작이 가능하지만, Spark는 기본적으로 인메모리 기반이기 때문에, 세션이 종료되면 카탈로그라고 불리는 테이블과 뷰가 사라진다. 이 문제로 인해 Spark에서는 계속해서 사용해야 하는 테이블을 그때 그때 불러와줘야 하는 문제가 발생한다. Hive 메타스토어이를 해결하기 위해 Disk에 저장이 가능한 Hive와 호환이 되는 Persistent라는 카탈로그를 제공한다. 각 테이블들은 DB라고 부르는 폴더와 같은 구조로 관리된다. 위와 같이 스토리지 기반의 테이블은 기본적으로 HDFS오 Parquet 포맷을 사용하며, Hive와 호환되는 메타스토어를 사용한다. 여기엔 두 종류의 테이블이 존재한다.Managed Table: Spark.. 더보기 [Spark/pySpark] SparkSQL UDF(User Define Function) UDF?UDF(User Define Function)는 SQL(Spark에서는 DataFrame까지)에서 적용할 수 있는 사용자 정의 함수다. 일반적으로 SQL에서 Scalar함수(UPPER, LOWER 등), Aggregation함수(SUM, MIN, AVG 등)를 제공하고 있지만, 상황에 따라서 특정 계산식이 반복해서 필요할 때가 있다. 그럴 때 유용하게 사용할 수 있는 것이 UDF이다. pySpark에서 UDF를 사용해보기UDF는 크게 두 가지의 종류가 있다.Transformation 함수UDAF(User Define Aggregation Function): Aggregation 환경에서 사용하는 함수(Pyspark에서는 미지원)UDAF의 경우는 스칼라 또는 자바로 구현해야한다. 그렇다면, 다른 함.. 더보기 [Spark] Spark의 개념, 구조, 프로그램 실행 옵션 Spark?Spark는 2013년에 출시된 Scala 기반의 빅데이터 처리 기술로, YARN 등을 분산환경으로 사용한다. 최근엔 MapReduce와 Hive 대신 Spark가 많이 선택받고 있다. Spark의 구성 (3.0 기준)Spark 3.0 기준 아래와 같은 라이브러리로 구성되어 있다.Spark Core: 각 App을 실행시키는 엔진 역할Spark SQL: SQL 등으로 DB, Dataframe 등을 조작할 수 있는 기능Spark ML: 머신러닝 기능을 사용할 수 있음Spark StreamingSpark GraphXSpark의 특징 (vs MapReduce)Spark는 메모리를 우선 사용하며, 메모리가 부족해지면 디스크를 사용한다.MapReduce의 경우 디스크를 사용해 Spark에 비해 속도가 느.. 더보기 [Hadoop] MapReduce 프로그래밍이란? MapReduce 프로그래밍의 특징MapReduce 프로그래밍은 기본적으로 빅 데이터 처리를 위해 만들어졌기 때문에, 일반 데이터 처리와는 다른 특징이 있다. 큰 특징은 아래와 같다.데이터 셋은 Key, Value의 집합이며 변경 불가(immutable) - 포맷은 하나로 고정데이터 조작은 map과 reduce 2개의 오퍼레이션으로만 가능이 2개의 오퍼레이션은 항상 하나의 쌍으로 연속 실행이 두 오퍼레이션 코드를 개발자가 채워야 함MapReduce 시스템이 Map의 결과를 Reduce단으로 모아줌위 단계를 셔플링이라고 부르며, Network단을 통한 데이터 이동이 발생Map의 결과 중 key가 같은 것을 모아주고 Reduce로 보냄 Map과 ReduceMap: (k, v) --> [(k', v')*]입력.. 더보기 [Hadoop] 하둡의 분산처리 시스템, YARN 개념 정리 YARN은 Hadoop 2.0에서부터 지원되는 하둡의 Resourc Management Layer로, 세부 리소스 관리가 가능한 범용 컴퓨팅 프레임워크이다. HDFS 위에서 실행되며, YARN을 통해 Spark, MapReduce, Tez 등의 다양한 애플리케이션이 실행된다. YARN의 구조 YARN의 구조는 위 그림과 같다. 마스터 노드라고 할 수 있는 'Resource Manager'와 그 아래 슬레이브 노드인 'Node Manager'가 있다. 노드 매니저들은 리소스 매니저의 요구에 따라 자신이 가지고 있는 자원을 일부 넘겨주는 역할을 한다. 노드 매니저가 넘겨준다는 자원은 '컨테이너'라고 불린다. 컨테이너는 어떤 모듈을 실행시키는 구성 요소로, Java의 JVM과 비슷한 존재라고 생각할 수 있다... 더보기 이전 1 2 3 4 ··· 22 다음