Responsibilities and Skillsets of a Data Engineer
Responsibilities and Skillsets of a Data Engineer
데이터 엔지니어의 주요 책임은 데이터 사용자에게 분석 준비가 완료된 데이터를 제공하는 것입니다. 데이터 엔지니어는 다양한 출처에서 데이터를 추출, 조직화, 통합하고, 분석 및 보고를 위해 데이터를 변환하고 정제하며, 데이터 파이프라인을 설계하고 관리하고, 데이터 처리와 저장에 필요한 인프라를 설정하고 관리합니다.
데이터 엔지니어에게 필요한 기술 중 기술적인 기술로는 운영 체제, 인프라 구성 요소, 클라우드 기반 서비스, 데이터베이스 및 데이터 웨어하우스, 데이터 파이프라인 솔루션, ETL 도구, 쿼리 및 프로그래밍 언어, 쉘 및 스크립팅 언어, 빅 데이터 처리 도구에 대한 지식이 포함됩니다.
기능적 기술로는 비즈니스 요구 사항을 기술 사양으로 전환할 능력, 소프트웨어 개발 생명 주기에 대한 작업 경험, 데이터의 비즈니스 적용에 대한 이해, 데이터 관리 위험에 대한 이해 등이 있습니다.
데이터 엔지니어링은 팀 작업이기 때문에 인간 관계 기술, 팀워크 및 협업이 필수적입니다. 데이터 엔지니어는 전문화된 영역을 선택하고 다른 영역에 대한 이해를 바탕으로 보다 정보화된 결정을 내리게 됩니다. 경험, 초점 분야 및 업그레이드에 투자한 시간에 따라 기술이 시간이 지남에 따라 성장합니다.
Viewpoints: Skills and Qualities to be a Data Engineer
데이터 엔지니어링은 빠르게 발전하는 기술로, 데이터를 좋아해야 하며, 업무에 따라 필요한 기술이 다릅니다. 기술적 기술은 배울 수 있으며 데이터 구조와 데이터 처리 방법에 대한 기본 이론을 이해해야 합니다. 데이터 엔지니어는 프로그래밍 언어, 운영 체제, IT 인프라 및 구조, 컴퓨터 아키텍처, 클라우드, 가상 머신, 컨테이너, 다양한 저장 유형 등에 능숙해야 합니다.
데이터 엔지니어는 SQL에 능숙해야 하며, 관계형 및 NoSQL 데이터베이스와 함께 작업할 수 있어야 합니다. ETL, 데이터 파이프라인, 데이터 웨어하우스, 데이터 레이크 및 기타 빅 데이터 시스템을 포함한 더 큰 데이터 엔지니어링 생태계의 지식과 경험은 필수는 아니지만 매우 유용합니다. 일반적으로 데이터 엔지니어에게 필요한 핵심 기술은 SQL, 데이터 모델링, ETL 방법론 및 Python과 같은 프로그래밍 기술입니다.
문제 해결과 문제 해결 능력, 팀워크, 협업 및 의사소통 능력, 논리적 사고 및 코딩에 대한 관심 등이 필요합니다. 비기술적 측면에서는 데이터 엔지니어가 문제를 해결하는 데 능숙하며, 여러 팀과 지속적으로 협력하므로 의사소통 능력이 뛰어나야 합니다. 호기심이 많고, 업무에 대해 많은 질문을 하며, 그 답변을 통해 신뢰할 수 있는 데이터 소스와 적절한 데이터 파이프라인을 사용하여 견고한 데이터 파이프라인을 구축할 수 있어야 합니다.디테일에 집착하는 성격과 통제력이 중요하며, 개발자와 상호 작용하고, 관리자에게 선택 사항을 설명하며, 특정 방식으로 수행해야 하는 이유를 주장할 수 있는 능력이 필요합니다. 이러한 결정의 세부 사항과 중요성에 대해 이야기할 수 있어야 합니다. 따라서 업무에 대한 열정과 배우려는 의욕이 가장 중요한 것입니다.
요약하면, 데이터 엔지니어가 성공하기 위해서는 기술적 기술과 소프트 스킬 모두 필요합니다. 기술적 기술로는 프로그래밍 언어, 운영 체제, IT 인프라, 데이터베이스 등에 능숙해야 하며, 소프트 스킬로는 문제 해결, 팀워크, 의사소통 능력, 디테일에 대한 집착 등이 필요합니다. 또한 데이터 엔지니어는 호기심이 많고, 업무에 대해 질문을 하며, 계속해서 새로운 기술과 지식을 습득하려는 의욕이 있어야 합니다. 이러한 기술과 능력은 서로 상호 보완적이며, 데이터 엔지니어로서 성공하기 위한 핵심 요소입니다.
A Day in the Life of a Data Engineer
Sarah Flinch는 헤어 케어 제품을 생산하는 다국적 기업에서 데이터 엔지니어로 일하고 있다. 새로운 샴푸 출시를 앞두고, 사회적 평판을 파악하기 위해 소셜 미디어와 온라인 커뮤니티의 반응을 살펴보려 한다. 데이터 과학자들은 감정 분석 알고리즘을 사용한 프로토타입 대시보드를 만들었고, 사업팀이 이를 구현할 것을 결정했다. 이때 데이터 엔지니어들이 개입하여 프로토타입을 현실로 만들었다.
Sarah는 여러 소셜 미디어 사이트와 온라인 소스로부터 데이터를 수집하여 기업 환경에 가져왔다. 이를 위해 API를 사용하여 임시 저장소에 데이터를 저장했다. 다양한 형식과 구조의 데이터를 정리하고 변환하여 데이터베이스에 저장할 수 있는 형식으로 만들었다. 대시보드에 표시되는 보고서에 사용되는 데이터가 이 데이터베이스에서 가져온 것이다.
작업이 완료되고 데이터 과학자들에게 결과를 보여주었으며, 만족스러운 결과였다. 하지만 일은 여기서 끝나지 않았다. 사업팀은 고객의 의견과 브랜드 인식을 실시간으로 파악할 수 있는 이상적인 솔루션을 원했다. 따라서 데이터 엔지니어들은 지속적으로 데이터를 추출, 변환, 로드하는 데이터 파이프라인을 구축하는 작업을 계획했다. 이 과정이 완료되면, 사업팀은 대시보드에 로그인 할 때마다 실시간 투영을 볼 수 있게 된다.
The Data Ecosystem and Languages for Data Professionals
Overview of the Data Engineering Ecosystem
데이터 엔지니어의 생태계는
다양한 출처로부터 데이터를 추출하고,
데이터 변환과 통합, 저장을 위한 데이터 파이프라인을 설계 및 관리하고,
데이터 저장소를 구축 및 관리하며,
시스템 간 데이터 흐름의 작업 흐름과 최적화를 자동화하는 인프라, 도구, 프레임워크 및 프로세스를 관리합니다.
데이터는 구조화된 데이터, 반구조화된 데이터, 비구조화된 데이터로 분류할 수 있습니다.
데이터 엔지니어의 생태계는 또한 데이터 저장소를 포함합니다.
주요 데이터 저장소 유형은 트랜잭션 및 분석 저장소입니다.
트랜잭션 시스템은 고용량의 일상 업무 데이터를 저장하도록 설계되었으며, 분석 시스템은 복잡한 데이터 분석을 수행하기 위해 최적화되었습니다.
데이터 통합 도구는 다양한 출처의 데이터를 하나의 통합된 뷰로 결합하여 사용자가 데이터를 쿼리하고 조작할 수 있습니다.
이는 데이터 파이프라인 개념으로 연결되어, 추출-변환-로드 ETL 프로세스 또는 추출-로드-변환 프로세스를 사용하여 데이터를 통합한다.
데이터 엔지니어의 생태계는 쿼리 언어, 프로그래밍 언어 및 쉘 및 스크립팅 언어로 분류할 수 있는 언어를 포함합니다.
SQL을 사용하여 데이터 쿼리 조작부터 Python으로 데이터 애플리케이션 개발까지
이러한 언어는 데이터 엔지니어의 작업에 중요한 요소입니다.
BI 및 리포팅 도구는 여러 데이터 소스에서 데이터를 수집하고 시각적 형식으로 제공합니다.
이러한 도구를 사용하면 실시간 및 사전 정의된 일정에 따라 데이터를 연결하고 시각화할 수 있습니다.
이러한 도구는 일반적으로 데이터 및 BI 분석가에 의해 사용되지만, 데이터 엔지니어에 의해 활성화되고 관리됩니다.
데이터 엔지니어의 생태계는 데이터 분석 프로세스의 모든 단계를 위한 자동화된 도구, 프레임워크, 프로세스를 포함합니다.
이 생태계는 다양하고 풍부하며 도전적입니다.
이후의 과정에서 이 생태계의 다양한 부분을 더 자세히 살펴볼 것입니다.
데이터 엔지니어 생태계의 다양한 구성 요소 중 몇 가지를 더 살펴보겠습니다.
- 데이터 파이프라인 도구: 데이터 파이프라인을 구축하고 관리하는 데 도움이 되는 도구가 있습니다. 예를 들어, Apache NiFi, Talend, StreamSets 등이 이러한 도구에 포함됩니다.
- 데이터 저장 및 처리 프레임워크: 대용량 데이터를 저장하고 처리하기 위해 설계된 프레임워크가 있습니다. 예를 들어, Apache Hadoop, Apache Spark, Apache Flink 등이 있습니다.
- 데이터베이스 관리 시스템 (DBMS): 데이터 엔지니어는 다양한 유형의 데이터베이스 관리 시스템을 사용하여 데이터를 저장하고 관리할 수 있습니다. 이에는 관계형 데이터베이스(RDBMS)와 NoSQL 데이터베이스가 포함됩니다.
- 데이터 가상화 및 통합 솔루션: 이러한 솔루션은 여러 데이터 소스를 통합하여 단일 인터페이스를 제공합니다. 이를 통해 사용자가 데이터를 쉽게 쿼리하고 조작할 수 있습니다. 예를 들어, Denodo, Informatica, Apache Drill 등이 있습니다.
- 데이터 보안 및 거버넌스 도구: 데이터 엔지니어는 데이터의 보안, 프라이버시, 거버넌스를 유지하기 위해 다양한 도구를 사용할 수 있습니다. 이에는 Apache Ranger, Apache Atlas, Immuta 등이 포함됩니다.
- 데이터 모니터링 및 경고 도구: 데이터 엔지니어는 데이터 파이프라인, 저장소, 및 처리 시스템의 성능 및 상태를 모니터링하고 문제가 발생할 때 경고를 받기 위해 도구를 사용할 수 있습니다. 예를 들어, Datadog, Grafana, Prometheus 등이 있습니다.
이러한 구성 요소들은 데이터 엔지니어의 업무에 필수적인 부분이며, 그들이 작업하면서 다루게 될 주요 기술 및 도구입니다.
데이터 엔지니어 생태계는 끊임없이 발전하고 있으며, 새로운 기술 및 도구가 등장함에 따라 데이터 엔지니어들은 지속적으로 새로운 것을 배워야 합니다. 이러한 기술 및 도구를 이해하고 사용하면 데이터 엔지니어로서 더 효과적이고 효율적인 결과를 달성할 수 있습니다.
Types of Data
데이터는 의미 있는 정보로 처리되기 위한 조직화되지 않은 정보입니다. 일반적으로 데이터는 사실, 관찰, 인식, 숫자, 문자, 기호 및 이미지로 구성되어 해석을 통해 의미를 도출할 수 있습니다. 데이터를 분류하는 방법 중 하나는 구조에 따른 것으로,
데이터는 다음과 같이 분류됩니다: (구조화된 데이터, 반구조화된 데이터, 비구조화된 데이터.)
구조화된 데이터는 잘 정의된 구조를 가지고 있거나 지정된 데이터 모델을 따르며, 데이터베이스와 같은 잘 정의된 스키마에 저장될 수 있습니다. 구조화된 데이터는 관찰 가능한 사실과 숫자로 구성되어 일반적인 데이터베이스에 수집, 내보내기, 저장 및 구성할 수 있습니다. 구조화된 데이터의 일부 소스는 SQL 데이터베이스, OLTP 시스템, 스프레드시트, 온라인 양식, 센서, 네트워크 및 웹 서버 로그 등입니다. 구조화된 데이터는 관계형 또는 SQL 데이터베이스에 저장할 수 있으며, 표준 데이터 분석 방법 및 도구로 쉽게 검사할 수 있습니다.
반구조화된 데이터는 일부 조직적 속성이 있지만 고정된 스키마가 없는 데이터입니다. 반구조화된 데이터는 데이터베이스의 행과 열로 저장할 수 없습니다. 이 데이터는 태그와 요소, 메타데이터를 포함하여 계층적으로 데이터를 그룹화하고 조직화하는 데 사용됩니다. 반구조화된 데이터의 일부 소스는 이메일, XML 및 기타 마크업 언어, 바이너리 실행 파일, TCP/IP 패킷, 압축 파일, 다양한 소스에서 데이터 통합 등이 있습니다. XML과 JSON은 계층적 형태로 데이터를 저장하고 교환하는 데 사용되며, 반구조화된 데이터를 저장하고 교환하는 데 널리 사용됩니다.
비구조화된 데이터는 쉽게 식별할 수 없는 구조가 없으므로 일반적인 관계형 데이터베이스의 행과 열 형태로 구성할 수 없습니다. 이 데이터는 특정 형식, 순서, 의미론 또는 규칙을 따르지 않습니다. 비구조화된 데이터는 소스의 이질성을 처리하며 다양한 비즈니스 인텔리전스 및 분석 응용 프로그램이 있습니다.비구조화된 데이터의 일부 소스로는 웹 페이지, 소셜 미디어 피드, 다양한 파일 형식의 이미지 (JPEG, GIF, PNG 등), 비디오 및 오디오 파일, 문서 및 PDF 파일, 파워포인트 프레젠테이션, 미디어 로그 및 설문 조사가 포함됩니다. 비구조화된 데이터는 수동 분석을 위한 파일과 문서(예: Word 문서)에 저장되거나, 이러한 유형의 데이터를 검사하는 도구가 있는 NoSQL 데이터베이스에 저장할 수 있습니다.
요약하면, 구조화된 데이터는 데이터베이스에 저장할 수 있으며 표준 데이터 분석 방법과 도구를 사용하여 검사할 수 있는 형식의 데이터입니다. 반구조화된 데이터는 약간의 조직이 있으며 메타태그를 사용하여 데이터를 그룹화하고 계층화합니다. 비구조화된 데이터는 일반적으로 행과 열로 구성되지 않은 형식입니다.
Understanding Different Types of File Formats
데이터 전문가는 다양한 파일 형식과 그 구조를 이해하여 데이터 요구 사항에 가장 적합한 형식에 대해 정보에 입각한 결정을 내리는 것이 중요합니다. 몇 가지 일반적인 파일 형식은 다음과 같습니다:
- 구분된 텍스트 파일(예: CSV 및 TSV)은 쉼표나 탭과 같은 구분 기호로 구분된 텍스트로 데이터를 저장합니다. 이 파일은 간단하고 다용도로 사용할 수 있으며 많은 애플리케이션과 호환됩니다.
- Microsoft Excel Open XML 스프레드시트(XLSX)는 대부분의 애플리케이션에서 액세스할 수 있는 Excel 통합 문서용 XML 기반 파일 형식이며 Excel 기능을 지원합니다.
- XML(확장 가능한 마크업 언어)은 인터넷에서 데이터를 인코딩하고 공유하기 위해 설계된 자체 설명 언어입니다. 플랫폼과 언어에 독립적이므로 시스템 간에 데이터를 쉽게 공유할 수 있습니다.
- PDF(Portable Document Format)는 여러 장치와 소프트웨어에서 문서를 일관되게 표시하기 위해 Adobe에서 개발한 형식으로, 법률 및 재무 문서에 주로 사용됩니다.
- JSON(JavaScript 객체 표기법)은 웹을 통해 구조화된 데이터를 전송하기 위한 텍스트 기반의 언어 독립적인 형식입니다. 사용하기 쉽고 광범위하게 호환되며 모든 크기와 유형의 데이터를 공유하는 데 적합합니다.
이러한 형식과 그 장점과 한계를 이해하면 다양한 상황에서 데이터를 효과적으로 관리하고 작업하는 데 도움이 됩니다.
Languages for Data Professionals
이 동영상에서는 쿼리 언어, 프로그래밍 언어, 셸 스크립팅으로 분류할 수 있는 데이터 전문가와 관련된 다양한 언어를 살펴봅니다. 데이터 전문가라면 각 범주에서 적어도 한 가지 이상의 언어에 능숙해야 합니다. 몇 가지 주요 언어는 다음과 같습니다:
SQL: 데이터베이스의 데이터에 액세스하고 조작하기 위해 설계된 쿼리 언어입니다. 이식성이 뛰어나고 구문이 간단하며 많은 양의 데이터를 효율적으로 검색할 수 있습니다.
Python: 단순성과 가독성에 중점을 둔 다목적 오픈 소스 프로그래밍 언어입니다. 데이터 조작, 시각화 및 분석을 위한 수많은 라이브러리가 있어 다양한 사용 사례에 적합합니다.
R: 데이터 분석, 시각화, 머신 러닝 및 통계를 위한 오픈 소스 프로그래밍 언어입니다. 매력적인 시각화를 만들고 정형 및 비정형 데이터를 처리하는 것으로 잘 알려져 있습니다.
Java: 데이터 정리, 가져오기, 내보내기, 시각화 등 다양한 데이터 분석 프로세스에 사용되는 객체 지향 클래스 기반 프로그래밍 언어입니다. 널리 사용되는 많은 빅 데이터 프레임워크가 Java로 작성되어 있습니다.
Unix/Linux 셸: 파일 조작, 프로그램 실행, 시스템 관리와 같은 반복적인 작업을 수행하기 위해 일반 텍스트 파일로 작성된 일련의 UNIX 명령어입니다.
PowerShell: 구조화된 데이터 형식으로 작업하고 데이터 파이프라인의 개체에 대한 다양한 작업을 수행하는 데 최적화된 Microsoft의 크로스 플랫폼 자동화 도구 및 구성 프레임워크입니다.
이러한 언어를 이해하고 숙달하면 데이터 전문가는 자신의 분야에서 탁월한 역량을 발휘하는 데 필요한 기술을 갖추게 됩니다.
Viewpoints: Working with Varied Data Sources and Types
이 동영상에서는 데이터 전문가들이 다양한 데이터 원본과 데이터 유형으로 작업한 경험에 대해 이야기합니다. 이들은 여러 데이터 소스로 작업할 때 유연성의 중요성과 로그 데이터, XML, JSON 및 독점 형식과 같은 다양한 데이터 형식에 따른 어려움을 강조합니다. 또한 관계형 데이터베이스, NoSQL, 빅 데이터 리포지토리 등 다양한 데이터 소스를 처리하기 위해 새로운 기술을 익히고 적응해야 할 필요성을 강조합니다.
한 가지 예로, 가져오기 및 내보내기 기대치의 차이와 데이터에 특수 문자가 있는 경우 Db2 데이터베이스에서 SQL Server 데이터베이스로 데이터를 변환하는 데 따르는 어려움을 설명했습니다. 전반적으로 이 동영상은 데이터 엔지니어링 분야에서 다양한 데이터 원본과 형식으로 작업할 때 적응력과 지속적인 학습이 중요하다는 점을 강조합니다.
Data Repositories, Data Pipelines, and Data Integration Platforms
Overview of Data Repositories
이 동영상에서는 데이터베이스, 데이터 웨어하우스, 빅 데이터 저장소 등 다양한 유형의 데이터 저장소에 대한 개요를 제공합니다. 관계형 또는 비관계형일 수 있는 데이터베이스는 입력, 저장, 검색, 검색 및 수정을 위해 설계된 데이터의 모음입니다.
데이터베이스 관리 시스템(DBMS)은 데이터베이스를 만들고 유지 관리하는 데 사용되며, SQL은 관계형 데이터베이스를 위한 표준 쿼리 언어입니다.
데이터 웨어하우스는 분석 및 비즈니스 인텔리전스를 위한 추출, 변환 및 로드(ETL) 프로세스를 사용하여 다양한 소스의 정보를 통합하는 중앙 리포지토리 역할을 합니다.
데이터 마트와 데이터 레이크는 나중에 다룰 관련 개념입니다. NoSQL 기술과 새로운 데이터 소스의 등장으로 비관계형 데이터 리포지토리도 데이터 웨어하우징에 사용되고 있습니다.
빅데이터 저장소는 대규모 데이터 집합을 위한 분산 컴퓨팅 및 저장 인프라를 제공하는 데이터 저장소의 또 다른 범주입니다. 전반적으로 데이터 리포지토리는 데이터를 분리하여 보고 및 분석을 보다 효율적이고 안정적으로 수행하며 데이터 아카이브 역할을 합니다.
RDBMS
관계형 데이터베이스는 공통 데이터를 기반으로 연관시킬 수 있는 테이블로 구성된 데이터 모음입니다. 테이블은 행(레코드)과 열(속성)로 구성됩니다. 관계형 데이터베이스는 대용량 데이터의 최적화된 저장, 검색 및 처리에 이상적이며, 데이터 중복을 최소화하고 데이터 일관성 및 무결성을 보장합니다.
SQL은 관계형 데이터베이스의 데이터를 쿼리하는 데 사용되며, 대량의 데이터를 빠르게 처리하고 검색할 수 있습니다. 널리 사용되는 관계형 데이터베이스로는 IBM DB2, Microsoft SQL Server, MySQL, Oracle Database, PostgreSQL 등이 있으며, 클라우드 기반 옵션도 제공됩니다.
관계형 데이터베이스의 장점으로는 유연성, 중복성 감소, 백업 및 재해 복구의 용이성, ACID 규정 준수 등이 있습니다. 관계형 데이터베이스는 온라인 트랜잭션 처리(OLTP), 데이터 웨어하우스 및 IoT 솔루션에 적합합니다. 그러나 관계형 데이터베이스는 반정형 및 비정형 데이터와 잘 작동하지 않고 필드 길이 제한이 있는 등의 한계가 있습니다. 이러한 한계에도 불구하고 관계형 데이터베이스는 여전히 정형 데이터 관리를 위한 주요 기술로 사용되고 있습니다.
ACID
ACID는 Atomicity, Consistency, Isolation, Durability의 약자로 데이터베이스 트랜잭션 처리의 기본 속성을 나타냅니다. ACID를 준수하는 데이터베이스 시스템은 데이터의 정확성과 일관성을 유지하면서 실패에도 불구하고 안정적으로 트랜잭션을 처리할 수 있습니다. ACID 속성에 대해 간략히 설명하면 다음과 같습니다.
- Atomicity (원자성) : 트랜잭션에 포함된 모든 작업이 완전히 성공하거나 완전히 실패해야 함을 나타냅니다. 즉, 트랜잭션의 모든 작업이 성공적으로 완료되거나, 하나라도 실패하면 모든 작업이 취소되어야 합니다.
- Consistency (일관성) : 트랜잭션이 성공적으로 완료된 후 데이터베이스는 일관된 상태를 유지해야 함을 나타냅니다. 즉, 트랜잭션이 시작하기 전과 종료한 후에 모든 데이터는 미리 정의된 규칙에 따라 유효한 상태를 유지해야 합니다.
- Isolation (고립성) : 동시에 실행되는 여러 트랜잭션이 서로 영향을 주지 않도록 보장해야 함을 나타냅니다. 이는 동시에 실행되는 트랜잭션들이 각각 독립적으로 실행되는 것처럼 보이게 하여, 다른 트랜잭션의 중간 결과에 접근할 수 없도록 합니다.
- Durability (지속성) : 트랜잭션이 성공적으로 완료된 후, 그 결과는 영구적으로 데이터베이스에 저장되어야 함을 나타냅니다. 시스템 오류, 크래시 등의 문제가 발생하더라도 데이터는 손실되지 않아야 합니다.
ACID 준수는 데이터베이스 시스템에서 신뢰성과 무결성을 확보하는 데 중요한 역할을 합니다.
NoSQL
"SQL뿐만 아니라" 또는 "비 SQL"의 약자인 NoSQL은 데이터 저장 및 검색을 위한 유연한 스키마를 제공하는 비관계형 데이터베이스 설계입니다. 클라우드, 빅 데이터, 대용량 웹 및 모바일 애플리케이션의 증가와 함께 인기를 얻고 있습니다. NoSQL 데이터베이스는 특정 데이터 모델용으로 구축되고 유연한 스키마를 지원하며 일반적으로 데이터 쿼리에 SQL을 사용하지 않습니다.
NoSQL 데이터베이스에는 네 가지 일반적인 유형이 있습니다: 키-값 저장소, 문서 기반, 열 기반, 그래프 기반입니다.
키-값 저장소는 사용자 세션 데이터, 권장 사항 및 캐싱을 저장하는 데 유용합니다.
문서 기반 데이터베이스는 전자상거래 플랫폼, 의료 기록 저장소 및 CRM 플랫폼에 적합합니다.
열 기반 데이터베이스는 쓰기 요청이 많고 시계열 데이터를 저장해야 하는 시스템에 적합합니다.
그래프 기반 데이터베이스는 데이터 간의 시각화, 분석, 연관성 찾기에 탁월하여 소셜 네트워크, 실시간 제품 추천, 사기 탐지에 적합합니다.
NoSQL의 장점으로는 대량의 정형, 반정형, 비정형 데이터 처리, 여러 데이터 센터에 분산 시스템으로 실행, 효율적이고 비용 효율적인 확장, 더 간단한 설계, 더 나은 제어, 향상된 확장성 제공 등이 있습니다.
관계형 데이터베이스와 비관계형 데이터베이스의 주요 차이점으로는 스키마 경직성, 비용, ACID 준수, 기술 성숙도 등이 있습니다. 미션 크리티컬 애플리케이션에 NoSQL 데이터베이스가 점점 더 많이 사용되고 있습니다.
Data Warehouses, Data Marts, and Data Lakes
데이터 웨어하우스, 데이터 마트, 데이터 레이크는 보고, 분석, 인사이트 도출을 위한 데이터를 보관하는 공통된 목표를 가진 데이터 저장소입니다. 그러나 목적, 저장되는 데이터 유형, 데이터에 액세스하는 방식은 다릅니다.
data warehouse
데이터 웨어하우스는 여러 소스에서 통합된 데이터의 중앙 리포지토리로, 현재 및 과거 데이터에 대한 신뢰할 수 있는 단일 소스 역할을 합니다. 데이터 웨어하우스는 트랜잭션 시스템 및 운영 데이터베이스의 관계형 데이터를 저장하며, 비관계형 데이터도 지원할 수 있습니다. 보고 및 분석을 위해 대량의 데이터를 쉽게 사용할 수 있어야 할 때 사용됩니다. 클라우드 기반 데이터 웨어하우스는 비용 절감, 무제한 스토리지, 손쉬운 확장성 등의 이점을 제공합니다.
data mart
데이터 마트는 특정 비즈니스 기능 또는 사용자 커뮤니티를 위해 구축된 데이터 웨어하우스의 하위 섹션입니다. 데이터 마트는 비즈니스 프로세스를 가속화하고, 효율적인 응답 시간을 제공하며, 안전한 액세스 및 제어 기능을 제공합니다. 데이터 마트는 데이터를 소싱하고 변환하는 방식에 따라 종속형, 독립형 또는 하이브리드형이 될 수 있습니다.
data lake
데이터 레이크는 대량의 정형, 반정형, 비정형 데이터를 기본 형식으로 저장하는 리포지토리입니다. 데이터 레이크는 모든 유형의 데이터를 저장할 수 있는 기능, 민첩한 확장성, 시간 절약형 데이터 수집, 다양한 사용 사례에 맞게 데이터의 용도를 변경할 수 있는 기능 등의 이점을 제공합니다. 데이터 레이크는 클라우드 객체 스토리지, Apache Hadoop과 같은 분산 시스템 또는 관계형 및 NoSQL 데이터베이스를 사용하여 배포할 수 있습니다.
요약하면, 이러한 데이터 마이닝 리포지토리는 데이터를 보관한다는 목표는 공유하지만 목적, 데이터 유형 및 액세스 방법에서 차이가 있습니다. 조직은 사용 사례와 기술 인프라를 기반으로 이러한 리포지토리를 평가하여 필요에 가장 적합한 것을 결정해야 합니다.
Viewpoints: Considerations for Choice of Data Repository
- 이 동영상에서는 데이터 전문가가 조직에 적합한 데이터 리포지토리를 선택할 때 고려해야 할 요소에 대해 설명합니다. 주요 요소는 다음과 같습니다:
- 사용 사례: 데이터 리포지토리의 목적, 데이터 유형(정형, 반정형, 비정형), 스키마를 미리 알고 있는지 여부를 파악합니다.
- 성능 요구 사항: 데이터가 유휴 상태인지, 스트리밍 중인지, 이동 중인지, 암호화가 필요한지 결정합니다.
- 볼륨 및 스토리지 요구 사항: 데이터의 양, 빅 데이터 시스템의 필요성, 데이터에 액세스하고 업데이트해야 하는 빈도를 평가합니다.
- 조직 표준: 특정 업무에 사용할 수 있는 데이터 리포지토리를 명시하는 지침을 준수하세요.
- 용량: 필요한 볼륨과 액세스 유형을 처리할 수 있는 데이터 저장소의 용량을 평가하세요.
- 호환성: 데이터 리포지토리가 기존 프로그래밍 언어, 도구, 프로세스의 에코시스템에서 작동하는지 확인합니다.
- 보안 기능: 데이터 리포지토리에서 제공하는 보안 기능을 고려하세요.
- 확장성: 데이터 리포지토리가 조직의 성장에 따라 확장할 수 있는지 결정합니다.
조직은 팀원의 기술과 다양한 솔루션의 비용에 따라 여러 데이터 리포지토리를 사용하는 경우가 많습니다. 데이터 저장소에 대한 결정은 또한 데이터의 구조, 애플리케이션의 특성, 수집되는 데이터의 양에 따라 달라집니다. 데이터 리포지토리의 선택은 궁극적으로 특정 사용 사례, 애플리케이션 요구 사항 및 데이터 구조에 따라 달라집니다.
ETL, ELT, and Data Pipelines
이 동영상에서는 ETL(추출, 변환 및 로드), ELT(추출, 로드 및 변환), 데이터 파이프라인 등 소스에서 대상 시스템으로 데이터를 이동하는 다양한 도구와 프로세스에 대해 알아봅니다.
ETL은 소스에서 원시 데이터를 추출하여 사용 가능한 형식으로 변환한 후 데이터 리포지토리에 로드하는 자동화된 프로세스입니다. 이 프로세스는 복잡성과 유용성이 다양할 수 있습니다.
데이터 추출은 배치 처리 또는 스트림 처리를 통해 수행할 수 있습니다.
데이터 변환에는 데이터를 표준화, 정리 및 보강하는 작업이 포함됩니다.
데이터 로드에는 대상 시스템 또는 리포지토리로 데이터를 전송하는 작업이 포함됩니다.
널리 사용되는 ETL 도구는 IBM Infosphere Information Server, AWS Glue, Improvado, Skyvia, HEVO, Informatica PowerCenter 등이 있습니다.
ELT는 추출된 데이터를 먼저 대상 시스템에 로드하고 대상 시스템에서 변환을 적용하는 ETL의 변형입니다. ELT는 클라우드 기술을 기반으로 하며 데이터 레이크에 있는 대량의 비정형 및 비관계형 데이터 집합을 처리하는 데 적합합니다. 추출과 전달 사이의 주기가 짧고, 데이터 분석을 위한 유연성이 뛰어나며, 빅 데이터에 더 적합하다는 등의 이점을 제공합니다.
데이터 파이프라인은 한 시스템에서 다른 시스템으로 데이터를 이동하는 전체 여정을 포괄하는 광범위한 용어이며, 하위 집합으로 ETL과 ELT를 포함합니다. 데이터 파이프라인은 일괄 처리, 데이터 스트리밍 또는 이 둘의 조합을 위해 설계될 수 있습니다. 널리 사용되는 데이터 파이프라인 솔루션으로는 Apache Beam, AirFlow, DataFlow 등이 있습니다.
Data Integration Platforms
Gartner는 데이터 통합을 다양한 데이터 유형에 걸쳐 데이터를 수집, 변환, 결합 및 프로비저닝하기 위한 관행, 아키텍처 기술 및 도구가 포함된 분야로 정의합니다. 데이터 통합은 데이터 일관성, 마스터 데이터 관리, 데이터 공유, 데이터 마이그레이션 및 통합을 보장하는 데 필수적입니다. 분석 및 데이터 과학에서 데이터 통합에는 분석 목적으로 데이터에 액세스, 큐에 대기, 추출, 변환, 병합 및 관리가 포함됩니다.
데이터 통합 플랫폼은 데이터 파이프라인이 데이터 통합을 수행하고 ETL은 데이터 통합 내의 프로세스라는 점에서 ETL 및 데이터 파이프라인과 관련이 있습니다. 최신 데이터 통합 솔루션은 일반적으로 사전 구축된 커넥터, 오픈 소스 아키텍처, 배치 처리 및 연속 데이터 스트림, 빅 데이터 소스와의 통합, 데이터 품질 및 거버넌스와 같은 추가 기능, 클라우드 모델에 대한 이식성을 지원합니다.
시장에는 IBM, Talend, SAP, Oracle, Denodo, SAS, Microsoft, Qlik, TIBCO의 제품을 비롯하여 수많은 데이터 통합 플랫폼과 도구가 있습니다. Dell Boomi, Jitterbit, SnapLogic과 같은 오픈 소스 프레임워크도 사용할 수 있습니다.
클라우드 기반 통합 서비스형 플랫폼(iPaaS)은 Adeptia 통합 스위트, Google Cloud의 협력 534, IBM의 애플리케이션 통합 스위트 온 클라우드, Informatica의 통합 클라우드와 같은 공급업체에서 제공합니다. 기업이 새로운 기술을 채택하고 의사 결정에 있어 데이터의 다양성과 중요성이 커짐에 따라 데이터 통합 분야는 계속 발전하고 있습니다.
Viewpoints: Tools, Databases, and Data Repositories of Choice
Big Data Platforms
Foundations of Big Data
빅데이터는 사람, 도구, 기계에 의해 생성되는 방대하고 다양한 양의 데이터를 의미하며, 이를 처리하고 가치 있는 인사이트를 도출하기 위해서는 혁신적이고 확장 가능한 기술이 필요합니다. 빅 데이터의 핵심 요소는 빅 데이터의 V라고도 하는 속도, 볼륨, 다양성, 진실성, 가치입니다. 속도는 데이터 축적 속도를, 볼륨은 데이터의 규모를, 다양성은 데이터 유형의 다양성을, 진실성은 데이터 품질과 정확성을, 가치는 데이터에서 얻을 수 있는 잠재적 이점을 나타냅니다. 기존의 데이터 분석 도구가 빅데이터의 규모를 감당하는 데 어려움을 겪고 있는 가운데, Apache Spark 및 Hadoop과 같은 대체 도구는 분산된 컴퓨팅 리소스에서 데이터를 추출, 로드, 분석 및 처리하는 솔루션을 제공합니다. 이러한 인사이트를 통해 조직은 고객과의 관계를 개선하고 서비스 제공을 강화할 수 있습니다.
Big Data Processing Tools: Hadoop, HDFS, Hive, and Spark
이 동영상에서는 빅데이터 분석에 사용되는 세 가지 오픈 소스 기술에 대해 설명합다: Apache Hadoop, Apache Hive, Apache Spark에 대해 설명합니다.
Apache Hadoop은 컴퓨터 클러스터에 걸쳐 대규모 데이터 세트를 분산 저장하고 처리할 수 있는 Java 기반 프레임워크입니다. Hadoop 분산 파일 시스템(HDFS)은 Hadoop의 주요 구성 요소 중 하나로, 여러 노드에 걸쳐 파일을 파티션하여 확장 가능하고 안정적인 스토리지를 제공합니다. HDFS는 하드웨어 장애로부터의 빠른 복구, 높은 데이터 처리 속도, 대규모 데이터 세트 지원, 다양한 플랫폼에서의 이식성을 제공합니다.
Apache Hive는 HDFS에 저장된 대규모 데이터 세트 또는 Apache HBase와 같은 기타 시스템을 관리하기 위한 오픈 소스 데이터 웨어하우스 소프트웨어입니다. ETL, 보고, 데이터 분석과 같은 데이터 웨어하우징 작업에 가장 적합합니다. Hive는 SQL을 통해 데이터에 쉽게 액세스할 수 있지만 지연 시간이 길기 때문에 빠른 응답 시간이 필요한 애플리케이션이나 쓰기 작업이 많은 트랜잭션 처리에는 적합하지 않습니다.
Apache Spark는 대화형 분석, 스트림 처리, 머신 러닝, 데이터 통합, ETL 등 다양한 애플리케이션을 위한 대용량 데이터 추출 및 처리를 위해 설계된 범용 데이터 처리 엔진입니다. Spark는 빠른 계산을 위해 인메모리 처리를 활용하며 Java, Scala, Python, R 및 SQL과 같은 주요 프로그래밍 언어를 지원합니다. 독립형 클러스터 또는 Hadoop과 같은 다른 인프라에서 실행할 수 있으며, HDFS 및 Hive를 비롯한 여러 소스의 데이터에 액세스할 수 있어 실시간 복잡한 분석에 적합하고 다재다능합니다.
Data Platforms, Data Stores, and Security
Architecting the Data Platform
이 동영상에서는 데이터 수집, 데이터 저장 및 통합, 데이터 처리, 분석 및 사용자 인터페이스, 오버레이 데이터 파이프라인 레이어 등 데이터 플랫폼 아키텍처의 레이어에 대해 설명합니다.
데이터 수집 레이어: 소스 시스템에 연결하고 플랫폼으로 데이터를 수집하는 역할을 담당합니다. 주요 작업에는 데이터 소스에 연결, 스트리밍 또는 배치 모드로 데이터 전송, 메타데이터 유지 관리 등이 포함됩니다. 이 계층을 위한 도구로는 Google Cloud DataFlow, IBM Streams, Amazon Kinesis, Apache Kafka 등이 있습니다.
데이터 저장 및 통합 계층: 처리 및 장기 사용을 위한 데이터 저장, 추출된 데이터의 변환 및 병합, 스트리밍 또는 배치 모드에서 처리할 수 있도록 데이터를 만드는 데 중점을 둡니다.
널리 사용되는 관계형 데이터베이스로는 IBM DB2, Microsoft SQL Server, Oracle 데이터베이스 등이 있습니다. Amazon RDS 및 Google Cloud SQL과 같은 클라우드 기반 관계형 데이터베이스가 인기를 얻고 있습니다.
NoSQL 데이터베이스에는 IBM Cloudant, Redis, MongoDB, Cassandra 등이 있습니다.
통합 도구로는 IBM의 Cloud Pak for Data, Talend의 Data Fabric, Dell Boomi, SnapLogic 등이 있습니다.
데이터 처리 계층: 데이터 유효성 검사, 변환을 수행하고 비즈니스 로직을 적용합니다. 이 계층은 널리 사용되는 쿼리 도구 및 프로그래밍 언어를 지원하고, 처리 요구 사항을 충족하도록 확장하며, 분석가와 데이터 과학자가 데이터로 작업할 수 있는 방법을 제공해야 합니다.
변환 작업에는 구조화, 정규화, 비정규화 및 데이터 정리가 포함됩니다.
데이터 처리를 위한 도구로는 스프레드시트, OpenRefine, Google DataPrep, Watson Studio Refinery, Trifacta Wrangler 등이 있습니다. Python과 R은 데이터 처리를 위한 라이브러리도 제공합니다.
분석 및 사용자 인터페이스 계층: 처리된 데이터를 BI 분석가, 데이터 과학자 및 기타 애플리케이션과 같은 사용자에게 전달합니다.
쿼리 도구, 프로그래밍 언어, API 및 대시보드 애플리케이션을 지원해야 합니다.
예를 들어 SQL, CQL, Python, R, Java, IBM Cognos Analytics, Tableau, Jupyter Notebooks, Microsoft Power BI 등이 있습니다.
데이터 파이프라인 레이어: 데이터 수집, 데이터 저장 및 통합, 데이터 처리 계층을 오버레이하여 지속적으로 흐르는 데이터 파이프라인을 구현하고 유지 관리합니다. 널리 사용되는 데이터 파이프라인 솔루션으로는 Apache Airflow와 DataFlow가 있습니다.
이러한 계층은 다양한 작업을 지원하는 복잡한 데이터 플랫폼 아키텍처의 단순화된 표현을 형성합니다.
Factors for Selecting and Designing Data Stores
이 동영상에서는 데이터 유형, 데이터 양, 데이터의 용도, 스토리지 고려 사항, 개인정보 보호, 보안 및 거버넌스 요구 사항 등 데이터 저장소를 설계할 때 고려해야 할 주요 사항에 대해 설명합니다.
- 데이터 유형: 데이터베이스는 관계형(정형 데이터의 경우) 또는 비관계형(반정형 및 비정형 데이터의 경우)으로 분류할 수 있습니다. 비관계형 데이터베이스는 키-값, 문서, 열, 그래프 기반 유형으로 다시 나뉩니다.
- 데이터의 양: 데이터 레이크는 대량의 원시 데이터를 기본 형식으로 저장하는 데 적합합니다. 빅 데이터 리포지토리는 빠른 분석을 위해 분산 처리가 필요한 대용량, 고속의 다양한 데이터에 사용됩니다.
- 데이터의 의도된 사용: 트랜잭션 수, 업데이트 빈도, 응답 시간, 백업 및 복구 요구 사항은 데이터 저장소의 선택과 설계에 영향을 미칩니다. 트랜잭션 시스템에는 고속 읽기, 쓰기 및 업데이트 작업이 필요하고, 분석 시스템에는 복잡한 쿼리에 대한 빠른 응답 시간이 필요합니다.
- 스토리지 고려 사항: 주요 요소로는 성능(처리량 및 지연 시간), 가용성, 무결성, 데이터의 복구 가능성 등이 있습니다. 스키마 설계, 인덱싱 및 파티셔닝 전략은 시스템 성능에 중요한 역할을 합니다.
개인정보 보호, 보안 및 거버넌스: 안전한 데이터 전략에는 액세스 제어, 다중 영역 암호화, 데이터 관리 및 모니터링 시스템이 포함됩니다. GDPR, CCPA, HIPAA와 같은 규정을 준수하는 것은 필수적이며, 데이터 프라이버시, 보안, 거버넌스는 처음부터 데이터 저장소 설계의 일부가 되어야 합니다.
이러한 고려 사항을 고려하면 조직의 특정 요구 사항과 필요에 맞는 데이터 저장소를 설계할 수 있습니다.
Security
이 동영상에서는 엔터프라이즈급 데이터 플랫폼과 데이터 수명 주기 관리에 적용되는 보안의 다양한 측면에 대해 설명합니다. 보안의 네 가지 측면 또는 수준은 물리적 인프라 보안, 네트워크 보안, 애플리케이션 보안, 데이터 보안입니다. CIA 트라이어드(기밀성, 무결성, 가용성)는 이러한 모든 측면에 적용됩니다.
물리적 인프라 보안: 여기에는 IT 시스템을 수용하는 물리적 시설의 보안이 포함됩니다. 클라우드 컴퓨팅의 경우, 이는 클라우드 서비스 제공업체의 인프라까지 확장됩니다. 물리적 인프라 보안을 위한 조치에는 액세스 제어, 24시간 감시, 다중 전원 공급, 온도 및 습도 관리, 환경 위협 고려, 낙뢰 보호 시스템 등이 포함됩니다.
네트워크 보안: 네트워크 보안은 상호 연결된 시스템과 데이터를 안전하게 유지하는 데 매우 중요합니다. 네트워크 보안 솔루션에는 방화벽, 네트워크 액세스 제어, 네트워크 세분화, 보안 프로토콜, 침입 탐지 및 방지 시스템이 포함됩니다.
애플리케이션 보안: 취약점을 방지하기 위해 애플리케이션의 기반에 보안을 구축해야 합니다. 안전한 애플리케이션 개발에는 위협 모델링, 보안 설계, 보안 코딩 관행 및 보안 테스트가 포함됩니다.
데이터 보안: 데이터는 저장소에 저장되어 있든 전송 중이든(시스템, 애플리케이션, 서비스, 워크로드 간에) 보호되어야 합니다. 데이터에 대한 액세스는 인증 및 권한 부여를 통해 제어됩니다. 암호화는 미사용 데이터와 이동 중인 데이터를 보호하는 데 사용됩니다.
보안 위반을 사전에 모니터링, 추적하고 적시에 대응하는 것이 필수적입니다. 기업 전반의 보안 프로세스 및 도구에 대한 엔드투엔드 가시성과 통합이 이를 지원합니다. 보안 모니터링 및 인텔리전스 시스템은 완전한 감사 이력을 생성하고 보고서와 경고를 제공하며 기업이 보안 위반에 즉시 대응할 수 있도록 지원합니다.
요약하자면, 엔터프라이즈급 보안은 물리적 인프라부터 데이터 보안에 이르기까지 보안의 다양한 측면을 다루는 것입니다. 모든 이해관계자가 인력, 정책, 프로세스, 시스템 및 도구를 통해 보안 목표 달성에 기여하도록 하려면 기업 수준의 보안 정책이 필요합니다.
Viewpoints: Importance of Data Security
이 동영상에서는 데이터 전문가가 데이터 엔지니어링에서 데이터 보안의 중요성을 강조합니다. 데이터는 세계에서 가장 가치 있는 리소스로 간주되기 때문에 데이터 보안은 모든 조직에 매우 중요합니다. 데이터를 안전하게 보호하지 못하면 기업에 치명적인 결과를 초래할 수 있습니다.
데이터 보안은 가동 전후에 강화하는 것이 아니라 프로세스의 모든 단계에서 고려하는 것이 중요합니다. 데이터 보안, 거버넌스 및 규정 준수는 조직의 데이터 아키텍처, 프로세스 및 전체 전략의 필수적인 부분이어야 합니다.
데이터 보호에는 적절한 액세스 제어를 보장하고 각 사용자에게 업무 수행에 필요한 최소한의 권한만 부여하는 것이 포함됩니다. 이를 통해 데이터 유출 및 보안 문제를 예방할 수 있습니다. 흥미롭게도 데이터에 대한 대부분의 위협은 외부 소스보다는 조직 내부에서 발생할 가능성이 높습니다. 따라서 잠재적인 내부 위협으로부터 데이터를 보호하는 데 주의를 기울이는 것이 중요합니다.
데이터 보안에는 하드웨어 장애 발생 시 데이터를 복원하고 복구하는 기능도 포함됩니다. 하드웨어에 문제가 발생하더라도 데이터에 액세스하고 보호할 수 있도록 하는 것은 데이터 보안의 중요한 측면입니다.
요약하면, 데이터 보안은 데이터 엔지니어링에서 가장 중요하며 프로세스의 모든 단계에서 고려해야 합니다. 조직은 데이터 보안, 거버넌스, 규정 준수에 우선순위를 두어 소중한 데이터를 보호하고 심각한 결과를 초래할 수 있는 잠재적인 위반을 방지해야 합니다.
Data Collection and Data Wrangling
How to Gather and Import Data
데이터베이스, 웹, 센서 데이터, 데이터 교환 등 다양한 소스에서 데이터를 수집하는 다양한 방법과 도구에 대해 알아봅니다. 또한 다양한 유형의 데이터 리포지토리로 데이터를 가져오는 방법도 살펴봅니다.
- SQL은 관계형 데이터베이스에서 정보를 추출하는 데 사용되는 쿼리 언어입니다.
비관계형 데이터베이스도 SQL과 유사한 도구 또는 특정 쿼리 도구(예: Cassandra용 CQL 및 Neo4J용 GraphQL)를 사용하여 쿼리할 수 있습니다. - API(애플리케이션 프로그래밍 인터페이스)는 데이터베이스, 웹 서비스, 데이터 마켓플레이스와 같은 다양한 데이터 소스에서 데이터를 추출하고 데이터 유효성을 검사하는 데 사용됩니다.
- 웹 스크래핑은 정의된 매개변수를 기반으로 웹 페이지에서 특정 데이터를 다운로드하는 데 사용됩니다.
- RSS 피드는 온라인 포럼과 뉴스 사이트에서 업데이트된 데이터를 캡처하는 데 사용됩니다.
- 데이터 스트림은 IoT 장치, GPS 데이터, 소셜 미디어 사이트와 같은 소스에서 지속적인 데이터 스트림을 집계합니다.
- 데이터 교환 플랫폼은 보안과 거버넌스를 유지하면서 공급자와 소비자 간의 데이터 교환을 용이하게 합니다.
다양한 데이터 소스는 마케팅 트렌드, 사용자 행동 데이터, 인구통계학적 연구와 같은 특정 데이터 요구 사항을 충족합니다. 데이터를 수집한 후에는 추가 처리를 위해 데이터 리포지토리로 가져와야 합니다.
데이터 저장소는 각기 다른 데이터 유형에 최적화되어 있습니다. 관계형 데이터베이스는 정형 데이터를 저장하는 반면, NoSQL 데이터베이스와 데이터 레이크는 반정형 및 비정형 데이터에 적합합니다. ETL 도구, 데이터 파이프라인, Python 및 R과 같은 프로그래밍 언어를 사용하여 데이터를 효율적으로 가져올 수 있습니다.
Data Wrangling
이 동영상에서는 데이터 탐색,데이터 변환, 데이터 유효성 검사 및 의미 있는 분석(data exploration, transformation, validation, and preparation for meaningful analysis)을 위한 준비등이 포함되는 반복적인 프로세스 데이터 랭글링에 대해 알아봅니다. 데이터 랭글링에는 다양한 변환 및 정리 활동이 포함됩니다.
구조화 Structuring : 여기에는 데이터의 형식과 스키마 변경이 포함됩니다. 일반적인 구조 변환에는 여러 테이블의 데이터를 결합하는 조인 및 유니온이 포함됩니다. 정규화 및 비정규화도 구조화의 일부이며, 사용하지 않는 데이터를 정리하고, 중복 및 불일치를 줄이고, 더 빠른 쿼리를 위해 데이터를 결합하는 데 중점을 둡니다.
정리 Cleaning: 여기에는 신뢰할 수 있고 정확한 분석을 생성하기 위해 데이터의 불규칙성을 수정하는 작업이 포함됩니다. 데이터 정리는 스크립트, 도구, 데이터 프로파일링 및 데이터 시각화를 사용하여 문제를 감지하는 것으로 시작됩니다. 일반적인 데이터 문제에는 누락된 값, 중복 데이터, 관련 없는 데이터, 데이터 유형 변환, 표준화, 구문 오류 및 이상값이 포함됩니다. 이러한 문제를 해결하는 기술은 사용 사례와 발생하는 문제의 유형에 따라 다릅니다.
이러한 데이터 랭글링 기술을 이해하고 적용하면 원시 데이터를 변환하고 정리하여 분석에 사용할 수 있도록 준비할 수 있습니다.
Tools for Data Wrangling
이 동영상에서는 널리 사용되는 다양한 데이터 랭글링 도구와 소프트웨어에 대해 설명합니다. 이러한 도구는 사용자가 문제를 식별하고, 데이터를 정리하고, 변환하는 데 도움이 됩니다:
스프레드시트: Microsoft Excel과 Google 스프레드시트는 데이터 랭글링을 위한 기능과 기본 제공 수식을 제공합니다. Excel용 Microsoft 파워 쿼리 및 Google 스프레드시트 쿼리 기능과 같은 애드인을 사용하면 데이터를 가져오고, 정리하고, 변환할 수 있습니다.
OpenRefine: 다양한 데이터 형식을 지원하는 오픈소스 도구로, 사용자가 데이터를 정리하고 변환할 수 있습니다. 메뉴 기반 조작으로 쉽게 배우고 사용할 수 있습니다.
구글 데이터프렙: 분석을 위해 정형 및 비정형 데이터를 시각적으로 탐색, 정리 및 준비할 수 있는 클라우드 기반 데이터 서비스입니다. 스키마, 데이터 유형 및 이상 징후를 자동으로 감지하는 기능을 제공합니다.
왓슨 스튜디오 리파이너리: IBM 왓슨 스튜디오 또는 데이터용 클라우드 팩을 통해 사용할 수 있으며, 내장된 작업으로 데이터를 검색, 정리, 변환할 수 있습니다. 데이터 유형, 분류를 자동으로 감지하고 데이터 거버넌스 정책을 시행합니다.
트라이팩타 랭글러: 데이터를 정리하고 변환하기 위한 대화형 클라우드 기반 서비스로, 팀원들이 동시에 작업할 수 있는 협업 기능을 제공합니다.
Python: Jupyter Notebook, Numpy, Pandas와 같은 라이브러리는 데이터 정리, 변환, 통계 모델링 및 시각화를 위한 강력한 데이터 조작 기능을 제공합니다.
R: Dplyr, Data.table, Jsonlite와 같은 라이브러리는 복잡한 데이터를 랭글링하기 위해 특별히 설계되었습니다. 이러한 라이브러리를 사용하면 데이터를 조사, 조작 및 분석할 수 있습니다.
최상의 데이터 랭글링 도구를 선택하는 것은 지원되는 데이터 크기, 데이터 구조, 정리 및 변환 기능, 인프라 요구 사항, 사용 편의성, 학습 가능성 등의 요소에 따라 달라집니다.
Querying Data, Performance Tuning, and Troubleshooting
Querying and Analyzing Data
이 동영상에서는 데이터베이스의 데이터를 분석하기 위한 기본 쿼리 기법에 대해 설명하며, SQL을 참조하지만 다른 쿼리 언어에도 적용할 수 있습니다. 기술에는 다음이 포함됩니다:
카운트 및 집계: 행 또는 레코드 수를 계산하려면 COUNT()를 사용하고 고유 값을 분리하려면 DISTINCT()를 사용합니다. 이 두 함수를 결합하여 고유 값의 총 개수를 계산합니다. SUM(), AVG(), STDDEV()와 같은 집계 함수는 데이터 집합에 대한 다양한 관점을 제공하는 데 도움이 됩니다.
극단값 식별: MAX() 및 MIN() 함수를 사용하여 데이터 열의 최대값과 최소값을 각각 찾을 수 있습니다.
데이터 조각화: SLICE() 함수를 사용하여 특정 조건 또는 조건 집합을 기반으로 데이터를 검색합니다.
데이터 정렬: 데이터 열을 오름차순 또는 내림차순으로 정렬할 수 있는 ORDER BY() 함수를 사용하여 데이터를 의미 있는 순서로 정렬합니다.
패턴 필터링: 부분적으로 일치하는 데이터 값에 대한 패턴을 지정하는 데 도움이 되는 LIKE 연산자를 사용하여 데이터 값의 부분 일치를 수행합니다.
데이터 그룹화: GROUP BY 문을 사용하여 데이터를 그룹화하여 특정 그룹을 기반으로 분석할 수 있습니다.
이러한 쿼리 기술을 통해 사용자는 기본적이면서도 중요한 데이터 분석 작업을 수행할 수 있으며, 데이터베이스의 데이터에 대한 인사이트와 더 나은 이해를 얻을 수 있습니다.
Performance Tuning and Troubleshooting
이 동영상에서는 데이터 엔지니어링에서 성능과 가용성을 위해 시스템과 데이터 흐름을 모니터링하고 최적화하는 주요 측면을 다룹니다. 주요 논의 영역은 데이터 파이프라인, 데이터베이스 최적화, 모니터링 및 알림 시스템입니다.
데이터 파이프라인: 데이터 파이프라인의 성능 위협에는 확장성, 애플리케이션 장애, 예약된 작업 문제, 도구 비호환성 등이 있습니다. 데이터 파이프라인의 성능 메트릭에는 지연 시간, 장애율, 리소스 사용률, 트래픽이 포함됩니다.
데이터 파이프라인 문제 해결: 단계에는 인시던트에 대한 정보 수집, 소프트웨어 및 소스 코드 버전 확인, 로그 및 메트릭 확인, 테스트 환경에서 문제 재현, 프로덕션 환경으로 옮기기 전에 테스트를 통해 근본 원인 가설을 검증하는 단계가 포함됩니다.
데이터베이스 최적화: 데이터베이스에서 모니터링해야 할 주요 성능 메트릭은
시스템 중단,
용량 사용률,
애플리케이션 속도 저하,
쿼리 성능,
충돌하는 활동입니다.
데이터베이스 최적화를 위한 모범 사례에는 용량 계획, 인덱싱, 파티셔닝 및 정규화가 포함됩니다.
모니터링 및 알림 시스템: 이러한 시스템은 데이터 파이프라인, 플랫폼, 데이터베이스, 애플리케이션, 도구, 쿼리 및 예약된 작업의 성능에 대한 가시성을 제공합니다. 데이터베이스 모니터링 도구, 애플리케이션 성능 관리 도구, 쿼리 성능 모니터링 도구, 작업 수준 런타임 모니터링 등이 그 예입니다.
유지 관리 루틴: 예방적 유지 관리 루틴은 시간 기반(미리 정해진 시간 간격으로 예약된 활동) 또는 조건 기반(특정 문제 또는 성능 저하가 있을 때 수행)이 될 수 있습니다.
전반적으로 데이터 파이프라인과 데이터베이스의 성능 튜닝 및 문제 해결, 데이터 엔지니어링 프로세스를 최적화하는 데 있어 시스템 및 유지 관리 일정의 모니터링과 알림의 중요성에 대해 설명합니다.
Governance and Compliance
Governance and Compliance
데이터 거버넌스란 데이터 보안, 개인정보 보호 및 무결성을 수명 주기 내내 유지하는 데 사용되는 원칙, 관행 및 프로세스를 말합니다. Data governance refers to the principles, practices, and processes used to maintain data security, privacy, and integrity throughout its lifecycle.
데이터 거버넌스 프레임워크는 기술, 데이터베이스, 데이터 모델 등 조직의 데이터 관리 프로세스의 모든 측면을 포괄합니다. 이러한 규정이 보호하고자 하는 주요 데이터 유형은 개인 데이터와 민감한 데이터입니다.
EU의 GDPR 및 캘리포니아의 CCPA와 같은 규정이 데이터 보호 및 개인정보 보호에 적용됩니다. 또한 의료, 리테일, 금융 부문에서는 각각 HIPAA, PCI DSS, SOX와 같은 산업별 규정을 통해 민감한 정보를 보호합니다.
규정 준수는 규정을 준수하고 합법적이고 윤리적으로 운영하기 위한 지속적인 프로세스입니다. 조직은 규정 준수를 보장하기 위해 제어를 설정하고 감사 추적을 유지해야 합니다. 규정을 준수하지 않으면 금전적 처벌, 평판 손상, 신뢰 상실로 이어질 수 있습니다.
일반적인 데이터 수명 주기에는 데이터 수집, 처리, 저장, 공유, 보존 및 폐기 단계가 포함됩니다. 각 단계에서 조직은 데이터 조달의 법적 근거, 사용 목적, 데이터 스토리지 보안, 타사 공급업체 액세스, 데이터 보존 정책 등 다양한 측면을 고려해야 합니다.
거버넌스 규정을 준수하기 위해 사용할 수 있는 도구와 기술에는 다음이 포함됩니다:
인증 및 액세스 제어: 계층화된 인증 프로세스와 액세스 제어 시스템은 데이터에 대한 무단 액세스를 방지합니다.
암호화 및 데이터 마스킹: 암호화는 미사용 데이터와 전송 중인 데이터를 보호하고, 데이터 마스킹은 익명화 및 가명화를 제공합니다.
호스팅 옵션: 국제 데이터 전송 요건을 준수하는 온프레미스 및 클라우드 시스템.
모니터링 및 경고: 자세한 감사 보고서와 경고 기능을 통해 보안 위반을 사전에 모니터링, 추적, 대응할 수 있습니다.
데이터 삭제: 소프트웨어 기반 방법을 사용하여 데이터를 영구적으로 삭제하여 삭제된 데이터를 검색할 수 없도록 합니다.
요약하면, 데이터 거버넌스 및 규정 준수는 데이터 라이프사이클 전반에 걸쳐 중요하며,
다양한 도구와 기술이 거버넌스 프레임워크를 구축하는 데 중요한 역할을 합니다.
Optional: Overview of the DataOps Methodology
데이터옵스는 조직 전반에서 데이터 관리자와 사용자 간의 데이터 흐름에 대한 커뮤니케이션, 통합 및 자동화를 개선하는 것을 목표로 하는 협업 데이터 관리 관행입니다. 적절한 보안, 품질 및 메타데이터로 데이터 전달을 자동화하는 기술을 사용하여 데이터, 데이터 모델 및 관련 아티팩트의 예측 가능한 전달 및 변경 관리를 만드는 데 중점을 둡니다.
데이터 파이프라인과 인프라가 더욱 복잡해지고 팀이 성장함에 따라, 데이터 및 분석 수명 주기를 관리하기 위해 개발 프로세스와 효율적인 협업이 필요합니다. DataOps는 메타데이터 관리, 워크플로 및 테스트 자동화, 코드 리포지토리, 협업 도구 및 오케스트레이션을 통해 이를 달성하도록 지원합니다.
널리 사용되는 DataOps 플랫폼으로는 IBM DataOps, Nexla, Switchboard, Streamsets, Infoworks 등이 있습니다. DataOps 방법론은 세 가지 주요 단계로 구성됩니다: 데이터옵스 구축, 데이터옵스 반복, 데이터옵스 개선입니다. 이러한 단계는 성공을 위해 조직을 설정하고, 정의된 스프린트를 위해 데이터를 제공하며, 학습한 내용을 데이터옵스 프로세스를 개선하는 데 다시 활용하도록 돕습니다.
DataOps를 도입하면 메타데이터 관리 자동화, 데이터 계보 추적, 워크플로우 자동화, 프로세스 간소화, 비즈니스 지원 데이터 파이프라인 보장, 데이터 기반 문화 구축 등 다양한 이점을 얻을 수 있습니다.
데이터 실무자는 DataOps를 사용하면 개발 시간을 단축하고 생산성을 높이며 데이터 품질을 개선할 수 있습니다. 또한 협업을 촉진하고 데이터옵스 엔지니어 또는 데이터옵스 내 전문가 역할과 같은 새로운 경력 기회를 열어줍니다. 데이터옵스를 구현하려면 시스템 변경, 시간, 리소스가 필요하지만 궁극적으로 더 효율적이고 신뢰할 수 있는 데이터 및 분석으로 이어집니다.
- The Establish DataOps Phase provides guidance on how to set up the organization for success in managing data.
- The Iterate DataOps Phase delivers the data for one defined sprint.
- The Improve DataOps Phase ensures learnings from each sprint is channeled back to continually improve the DataOps process.
- 데이터 운영 수립 단계에서는 성공적인 데이터 관리를 위해 조직을 설정하는 방법에 대한 지침을 제공합니다.
- 데이터 운영 반복 단계에서는 정의된 하나의 스프린트에 대한 데이터를 제공합니다.
- 데이터 운영 개선 단계에서는 각 스프린트에서 얻은 학습을 데이터 운영 프로세스를 지속적으로 개선하기 위해 다시 전달합니다.
Career Opportunities and Learning Paths
Career Opportunities in Data Engineering
이 동영상에서는 데이터 엔지니어링 분야의 성장하는 고용 시장과 경력 기회에 대해 설명합니다. LinkedIn의 2020 신흥 일자리 보고서와 Dice Tech 일자리 보고서는 모두 데이터 엔지니어링이 빠르게 성장하는 분야이며, 의료, 기술, 컨설팅 등의 산업에서 데이터 엔지니어링 인재에 대한 수요가 가장 높다고 강조합니다.
데이터 엔지니어링 역할은 회사마다 다를 수 있지만, 데이터 아키텍처, 데이터베이스 설계 및 아키텍처, 데이터 플랫폼, 데이터 파이프라인 및 ETL, 데이터 웨어하우스, 빅 데이터 등이 대표적인 전문 분야입니다. 직책은 '데이터 엔지니어'와 같이 일반적일 수도 있고, 데이터 아키텍트, 데이터베이스 아키텍트, ETL 엔지니어, 데이터 웨어하우스 엔지니어, 빅 데이터 엔지니어와 같이 더 구체적일 수도 있습니다.
데이터 엔지니어링 경력에서 데이터 엔지니어는 어소시에이트(또는 주니어) 데이터 엔지니어로 시작하여 데이터 엔지니어, 선임 데이터 엔지니어, 수석 데이터 엔지니어, 책임 데이터 엔지니어 직책을 거치며 발전할 수 있습니다. 이 분야에서 발전하려면 틈새 영역에서 기술을 확장하고 다른 데이터 엔지니어링 영역으로 진출하는 것이 필수적입니다. 데이터 엔지니어링 분야에서 성장하려면 다양한 도구와 기술을 이해하고, 데이터 엔지니어링 라이프사이클의 큰 그림을 보며, 커뮤니케이션, 협업 및 프로젝트 관리 기술을 향상해야 합니다.
데이터 엔지니어링 분야에서 새롭게 떠오르는 역할로는 빅데이터 파이프라인을 관리하고 Hadoop, Spark와 같은 도구를 사용하여 대규모 데이터를 처리하는 빅데이터 엔지니어와 대규모 정형 및 비정형 데이터 집합으로 작업하면서 기계 학습 알고리즘을 설계하고 구현하는 기계 학습 엔지니어가 있습니다. 이 역할에는 데이터 엔지니어링, 데이터 과학, AI 기술이 교차합니다.
결론적으로, 데이터 엔지니어링 분야에서 성공하려면 호기심과 인식을 갖춘 팀원으로서 새로운 도구와 기술을 끊임없이 배우고 구현해야 합니다.
Viewpoints: Get into Data Engineering
이 동영상에서는 여러 데이터 전문가가 데이터 엔지니어링 분야로 진출한 각자의 독특한 경로를 공유합니다.
한 전문가는 IBM Db2 RDBMS로 작업하는 DBA(데이터베이스 관리자)로 시작하여 OLTP 및 OLAP 데이터베이스의 성능 문제를 해결했습니다. 비즈니스 요구 사항이 진화함에 따라 MongoDB, Cassandra, Hadoop과 같은 다양한 비RDBMS 도구를 탐색하고 구현하여 결국 데이터 엔지니어가 되었습니다.
또 다른 사람은 대학 졸업 후 바로 데이터 전문가를 목표로 삼아 보다 직접적인 길을 택했습니다. 이들은 IBM에 취업하여 2년 만에 유능한 DBA가 되었습니다. 이들은 시스템 관리 또는 개발에서 시작하는 것이 데이터 엔지니어링에 입문하는 일반적인 방법이라고 생각합니다.
세 번째 전문가는 학생 시절 간단한 데이터 입력 작업으로 시작하여 데이터에 대한 관심을 촉발시켰습니다. 컴퓨터 공학 학위를 받았지만 책을 통해 데이터베이스 기술을 배우고, 데이터베이스 응용 프로그램을 만들고, 자원 봉사 및 프리랜서로 일하면서 인턴십을 거쳐 데이터 엔지니어로 일할 수 있었습니다.
또 다른 사람은 중학교에서 과학과 지리를 가르치다가 비영리 단체에서 마케팅과 채용 업무를 담당했습니다. 이후 비영리 경영 및 정보 시스템으로 대학원을 진학하여 비즈니스 인텔리전스 분석가 역할을 맡게 되었습니다. 교육 기술 회사에서 기회를 찾다가 데이터 엔지니어링으로 전환했습니다.
이러한 다양한 경험은 데이터 엔지니어링 분야에서 경력을 쌓는 데 단일한 길은 없다는 것을 보여줍니다. 호기심, 배우고자 하는 의지, 실무 경험과 같은 요소가 모두 이 분야에 진출하고 성공하는 데 기여합니다.
Data Engineering Learning Path
이 동영상에서는 학위, 전문 자격증, 실제 경험의 중요성을 강조하면서 데이터 엔지니어링 분야로 진출할 수 있는 다양한 경로를 설명합니다.
컴퓨터 과학 또는 공학 학위를 취득하면 데이터 엔지니어링 분야에 즉시 진입할 수 있습니다. 그러나 코딩 배경을 가진 많은 데이터 엔지니어는 독학으로 데이터 엔지니어링을 배웁니다.
Coursera, edX, Udacity와 같은 온라인 플랫폼은 최고의 대학과 기술 회사에서 설계한 종합적인 프로그램과 여러 전문 과정을 제공합니다. 이러한 과정에서는 실습 과제, 실제 프로젝트, 취업 시장에서 가치 있는 전문 자격증을 제공합니다.
최적의 경로를 선택하려면 파이프라인, 분산 시스템 또는 데이터 아키텍처와 같은 분야에 중점을 두고 현재 기술 수준과 포부를 고려한 후 진로를 결정하세요. 단기 및 장기 목표를 명확히 하면 맞춤형 학습 경로를 설계하는 데 도움이 됩니다.
관련 없는 분야를 졸업했거나 학위가 없는 경우, 전문 자격증 및 기타 학습 리소스를 통해 데이터 엔지니어링 기술을 습득할 수 있습니다. IT 지원 전문가, 소프트웨어 테스터, 프로그래머, 통계학자, 데이터 분석가 또는 BI 분석가가 데이터 엔지니어링 분야로 전환하고자 할 수 있습니다. 기본적인 코딩 지식은 자산입니다.
프로그래밍 및 쿼리 언어를 배우고, 다양한 운영 체제 및 데이터베이스로 작업하여 초급 직업을 확보하거나 포트폴리오 프로젝트를 만드는 것부터 시작하세요. 이해도를 높이려면 실제 환경에 노출되는 것이 필수적입니다.
경험이 쌓이면 더 복잡한 데이터 요구 사항과 인프라를 갖춘 더 큰 규모의 팀과 회사로 이동할 수 있습니다.
데이터 엔지니어링은 빠르게 변화하는 분야입니다. 호기심이 많고 새로운 것을 배우는 데 개방적이며 기술에 대한 열정이 있다면 데이터 엔지니어링 팀에 큰 자산이 될 것입니다.
Viewpoints: What Do Employers Look for in a Data Engineer
이 동영상에서는 여러 데이터 전문가가 고용주가 데이터 엔지니어에게 바라는 점에 대해 이야기합니다:
고용주는 다양한 데이터 관련 기술을 접한 사람을 찾으며, 이는 직무나 역할에 따라 다를 수 있습니다. 여기에는 관계형 데이터베이스, NoSQL 데이터베이스, 인메모리 데이터베이스 또는 키-값 저장소와 같은 다양한 유형의 데이터 소스에 대한 경험이 포함될 수 있습니다.
일부 역할은 RDBMS, NoSQL 데이터베이스, 소셜 미디어 API를 포함한 다양한 소스에서 Hadoop과 같은 분석 데이터베이스로 데이터를 전송하는 등 데이터 이동 프로세스에 대한 경험이 필요합니다.
고용주는 데이터 엔지니어의 분석 및 문제 해결 능력을 중요하게 생각합니다. 중요한 특성으로는 호기심, 의사소통 능력, 강한 직업 윤리 등이 있습니다.
필요한 기술은 회사 규모에 따라 다를 수 있습니다. 대기업의 데이터 엔지니어는 보다 좁은 분야에 집중해야 하는 반면, 스타트업의 데이터 엔지니어는 여러 가지 모자를 쓰고 폭넓은 기술을 갖춰야 할 수 있습니다.
필수 기술 능력에는 SQL, 데이터 모델링, ETL 방법론, Python과 같은 프로그래밍 언어가 포함됩니다. 호기심, 원활한 의사소통, 배움에 대한 애정과 같은 소프트 스킬도 중요합니다.
고용주들은 RDBMS, NoSQL 데이터베이스, 스키마 설계, ETL/ELT 프로세스, 스트리밍 데이터 처리, 여러 데이터 형식 작업, 웹 API, 데이터 스크래핑 및 기본 데이터 분석 기술에 대한 경험을 요구합니다.
문제 해결 능력과 일상적인 업무 자동화에 대한 요령이 높은 평가를 받습니다.
주니어급 직책의 경우, 고용주는 일반적인 기술 유창성과 소프트 스킬에 중점을 두는 경우가 많습니다. 시니어급 직책의 경우, 특정 요구 사항을 충족하기 위해 특정 기술 능력을 요구할 수 있습니다.
학위나 자격증과 같은 적절한 자격 증명을 보유하는 것은 중요하지만 그것만으로는 충분하지 않습니다. 적절한 기술 및 소프트 스킬을 입증하고 관련 프로젝트, 기술 문서, 프레젠테이션 또는 동영상을 보여주면 지원자가 돋보일 수 있습니다.
고용주는 잠재적인 데이터 엔지니어를 평가할 때 커뮤니케이션, 팀워크, 조직 적합성과 같은 소프트 스킬도 고려합니다.
Viewpoints: The Many Paths to Data Engineering
이 동영상에서는 여러 데이터 전문가가 데이터 엔지니어가 되기 위한 다양한 경로에 대해 설명합니다:
소프트웨어 공학 또는 컴퓨터 과학 학위 취득: 이 전통적인 경로에는 대학 교육에 시간과 돈을 투자하는 것이 포함됩니다. 그러나 실제 직무 요구 사항에 맞게 강의실 밖에서 기술을 보완해야 할 수도 있습니다.
디플로마, 부트캠프 또는 온라인 과정/자격증 프로그램을 수강하세요: 이미 다른 분야의 학위를 취득했거나 학위 프로그램에 몇 년을 투자할 수 없는 경우, 더 짧고 집중적인 프로그램이 데이터 엔지니어링 기술을 개발하는 데 도움이 될 수 있습니다. 비용, 기간, 평판, 콘텐츠, 리뷰, 개인 학습 스타일 등의 요소를 고려하여 프로그램을 선택하는 것이 중요합니다.
기존 역할에서 전환: 시스템 관리자, 데이터베이스 관리자, 자동화 엔지니어, 데이터 분석가, 프로그래머 등 많은 역할이 데이터 엔지니어링으로 가는 디딤돌 역할을 할 수 있습니다. 이러한 역할에서 전환하려면 운영 체제 및 데이터베이스와 같은 관련 기술을 숙달해야 할 수 있습니다.
DBA 또는 ETL 개발자가 되세요: 데이터 엔지니어는 데이터베이스, 데이터 소스 및 데이터 형식에 대해 잘 알고 있는 경우가 많습니다. 데이터베이스 관리자(DBA) 또는 ETL 개발자로 시작하면 자연스럽게 데이터 엔지니어링으로 전환할 수 있습니다.
컴퓨터 과학 또는 수학의 학문적 배경을 활용하세요: 이러한 과목에 대한 학문적 기초가 있으면 숙련된 데이터 엔지니어가 되는 과정을 가속화하는 데 도움이 될 수 있습니다.
졸업 후 바로 입사: 일부 컴퓨터 공학 졸업생은 학위를 마친 후 바로 데이터 엔지니어링 직무에 들어갈 수 있습니다.
비기술 직무에서 전환: 기술적인 배경 지식이 없는 사람도 데이터 엔지니어링 분야에 진출할 수 있으며, 주로 비즈니스 인텔리전스 분석가와 같은 직무에서 먼저 일하면서 SQL, 데이터 모델링 및 데이터베이스에 대한 기술을 연마할 수 있습니다.
일반적인 경로: 대부분의 데이터 엔지니어는 시스템 엔지니어링 또는 개발자 출신입니다. 하지만 일부는 헬프데스크 기술자나 시스템 관리자로 시작할 수도 있습니다.
전반적으로 데이터 엔지니어링 분야는 비교적 새롭고 진화하는 특성을 반영하여 다양한 경로로 진입할 수 있습니다. 각 개인의 경로는 배경, 경험, 개인 목표에 따라 달라집니다.
Viewpoints: Advice to Aspiring Data Engineers
이 동영상에서는 데이터 전문가가 데이터 엔지니어 지망생을 위한 조언을 제공합니다:
탄탄한 기초를 다지세요: 데이터 엔지니어링은 새로운 기술이 등장하는 비교적 새로운 분야입니다. SQL, Python, 데이터 모델링 및 ETL 방법론에서 탄탄한 기초를 쌓는 데 집중하세요.
실무 경험 쌓기: 실무 경험은 데이터 엔지니어링에서 매우 중요합니다. 오픈 소스 도구, 프레임워크, 온라인 리소스를 사용하여 개인 프로젝트를 만들고 실습해 보세요. 실무 경험은 이력서를 돋보이게 하고 면접에 대비하는 데 도움이 됩니다.
연습하고 다른 사람에게서 배우세요: 개인 프로젝트, 멘토와의 협력, 전문 조직에 가입하는 등 데이터 엔지니어링을 연습할 수 있는 방법을 찾아보세요. 현업에 종사하는 다른 사람들과 교류하여 그들의 경험에서 배우세요.
데이터베이스 내부 및 프로그래밍 언어 배우기: 데이터 원본의 데이터 구조를 이해하고, SQL과 함께 하나의 절차적 언어(예: 셸 스크립팅, PL/SQL, Perl), 하나의 객체 지향 프로그래밍 언어(예: Java, Python), 하나의 함수형 프로그래밍 언어(예: Scala)를 배워보세요.
지식을 공유하고 커뮤니티에 환원하세요: GitHub 리포지토리에 기여하고, LinkedIn에 기사를 작성하고, 블로그를 만들고, 데이터 엔지니어링 토론에 참여하세요. 지식과 경험을 공유하면 해당 분야에서 신뢰와 인맥을 쌓는 데 도움이 됩니다.
열심히 일하고 호기심을 유지하세요: 특히 젊을 때 기술을 배우고 성장시키는 데 시간과 노력을 투자하세요. 호기심을 유지하고 새로운 기술과 접근 방식을 따라잡아야 합니다.
올바른 기술을 쌓는 데 집중하세요: 하나의 RDBMS부터 시작하여 NoSQL 데이터베이스, 웹 스크래핑, API 등 다양한 기술과 도구를 마스터하세요. 관련 자격증을 취득하고 즐겨 사용하는 기술에 대한 전문성을 입증하세요.
학습을 평생의 과정으로 삼으세요: 데이터 엔지니어링은 진화하는 분야이므로 성공을 위해서는 지속적인 학습이 중요합니다. 데이터 작업에 대한 새로운 기술과 접근 방식을 계속 업데이트하세요.
동료와 네트워크 형성: 지역 네트워킹 그룹이나 모임에 참여하여 인사이트와 경험을 공유하고 같은 분야의 다른 사람들로부터 배우세요.
이러한 조언을 따르면 데이터 엔지니어 지망생은 필요한 기술을 개발하고, 실무 경험을 쌓고, 데이터 엔지니어링 분야에서 성공적인 경력을 쌓을 수 있습니다.
'Data Analysis > Data Engineering' 카테고리의 다른 글
IBM Data Engineer - Introduction to Relational Databases (RDBMS) (0) | 2023.04.19 |
---|---|
IBM Data Engineer - Extract, Transform, Load (ETL) (0) | 2023.04.18 |
IBM Data Engineer - Python for Data Science, AI & Development 3 (0) | 2023.04.18 |
IBM Data Engineer - Python for Data Science, AI & Development 2 (0) | 2023.04.12 |
IBM Data Engineer - Python for Data Science, AI & Development (0) | 2023.04.05 |
댓글