본문 바로가기

Apache/Spark8

[6장] 스파크 SQL과 데이터세트 이번 장은 데이터세트 구조를 고수준 API으로 수용하기 위해서 스파크가 메모리를 어떻게 관리하는지 알아보자. 스파크 데이터세트 및 데이터 프레임을 위한 메모리 관리 스파크는 인메모리 분산 빅데이터 엔진이기 때문에, 메모리를 효율적으로 사용하는 것은 중요하다. 스파크 1.X에서, 인코더라고 불리는 효율적인 메커니즘을 사용해 JVM과 내부 텅스텐 포맷 사이를 직렬화하고 역직렬화한다. 오프 힙에 메모리를 직접 할당하는 건 스파크가 GC에 의해 받는 영향을 줄일 수 있다는 것을 의미한다. 스파크 2.X는 전체 단계 코드 생성 및 벡터화된 칼럼 기반 메모리 레이아웃을 특징으로 하는 텅스텐 엔진을 도입했으며, 빠른 병렬 데이터 액세스를 위하여 '단일 명령, 다중 데이터(SIMD)' 접근 방식의 최신 CPU 및 캐시.. 2023. 9. 13.
[5장] 스파크 SQL과 데이터 프레임: 외부 데이터 소스와 소통하기 이번 장은 스파크 SQL을 사용해 다음을 수행하는 방법에 대해서 알아보자. - 아파치 하이브 및 아파치 스파크 모두에 대해 사용자 정의 함수를 사용하기 - JDBC 및 SQL 데이터 베이스, PostgreSQL, MySQL, 태블로, 애저 코스모스 DB 및 MS SQL 서버와 같은 외부 데이터 원본과 연결하기 - 단순하거나 복잡한 유형, 고차 함수 그리고 일반적인 관계 연산자 사용하기 스파크 SQL과 아파치 하이브 스파크 SQL은 관계형 처리와 스파크의 함수형 프로그래밍 API를 통합하는 아파치 스파크의 기본 구성 요소다. 사용자 정의 함수(UDF) 스파크는 내장 함수도 제공하지만, 자신의 기능을 정의할 수 있는 유연성 또한 제공이 되며, 이를 사용자 정의 함수라 한다. 스파크 SQL UDF 사용자가 U.. 2023. 9. 5.
[4장] 스파크 SQL과 데이터 프레임: 내장 데이터 소스 소개 [2] SQL 테이블과 뷰 스파크는 각 테이블과 해당 데이터에 관련된 정보인 스키마, 설명, 테이블명, 데이터베이스명, 칼럼명, 파티션, 실제 데이터의 물리적 위치 등의 메타데이터를 가지고 있고, 이 모든 정보는 중앙 메타스토어에 저장된다. 관리형 테이블과 비관리형 테이블 스파크는 관리형과 비관리형이라는 두 가지 유형의 테이블을 만들 수 있다. 관리형 테이블의 경우 스파크는 메타데이터와 파일 저장소의 데이터를 모두 관리하며, 비관리형 테이블의 경우에는 오직 메타데이터만 관리하고 카산드라와 같은 외부 데이터 소스에서 데이터를 직접 관리한다. SQL 데이터 베이스와 테이블 생성하기 테이블은 데이터베이스 안에 존재하기에 스파크에게 learn_spark_db라는 데이터베이스를 생성하고 스파크에게 해당 데이터베이스를 사.. 2023. 8. 3.
[4장] 스파크 SQL과 데이터 프레임: 내장 데이터 소스 소개 [1] 스파크 SQL의 특징 3장에서 살펴본 상위 수준의 정형화 API가 엔진으로 제공된다. 다양한 정형 데이터를 읽거나 쓸 수 있다.(JSON, 하이브 테이블, Parquet, Avro, ORC, CSV) 태블로, 파워BI, 탈렌드와 같은 외부 비즈니스 인텔리전스의 데이터 소스나 MySQL 및 PostgreSQL과 같은 RDBMS의 데이터를 JDBC/ODBC 커넥터를 사용하여 쿼리할 수 있다. 스파크 애플리케이션에서 데이터베이스 안에 테이블 또는 뷰로 저장되어 있는 정형 데이터와 소통할 수 있도록 프로그래밍 인터페이스를 제공한다. SQL 쿼리를 정형 데이터에 대해 실행할 수 있는 대화형 셸을 제공한다. ANSI SQL:2003 호환 명령 및 HiveQL을 지원한다. 스파크 애플리케이션에서 스파크 SQL 사용하.. 2023. 8. 1.