//
Search
🎈

데이터 엔지니어의 진화

Created
2023/02/05 08:33
카테고리
번역
DataEngineering
Status
Done
이 글은 Fundamentals of Data Engineering - Plan and Build Robust Data Systems (Joe Reis & Matt Housley)의 일부입니다. (Joe Reis의 허락을 받아 번역해서 포스팅합니다).
History doesn't repeat itself, but it rhymes. -A famous adage often attributed to Mark Twain

초기: 1980년부터 2000년까지 데이터 웨어하우징에서 웹으로

현재와 미래의 데이터 엔지니어링을 이해하려면 해당 분야가 어떻게 발전했는지에 대한 맥락이 필요합니다. 이 부분은 역사 수업은 아니지만 과거를 보는 것은 오늘날 우리가 어디에 있고 어떤 일들이 진행되고 있는지를 이해하는 데 매우 중요합니다. 오래된 것이 다시 새로운 것이라는 공통된 주제가 끊임없이 다시 나타납니다.
데이터 엔지니어의 탄생은 1970년대로 거슬러 올라가는 데이터 웨어하우징에 뿌리를 두고 있으며, 비즈니스 데이터 웨어하우스는 1980년대에 형성되었고 Bill Inmon은 1989년에 공식적으로 데이터 웨어하우스라는 용어를 만들었습니다. IBM의 엔지니어들이 관계형 데이터베이스와 구조화된 쿼리 언어(SQL)를 개발한 후 오라클은 이 기술을 대중화했습니다. 초기 데이터 시스템이 성장함에 따라 기업은 보고 및 비즈니스 인텔리전스(BI)를 위한 전용 도구와 데이터 파이프라인이 필요했습니다. Ralph Kimball(험프리: Fact / Dimension 패턴 만든 그분…)과 Inmon은 사람들이 데이터 웨어하우스에서 자신의 비즈니스 로직을 올바르게 모델링할 수 있도록 각각의 이름을 딴 데이터 모델링 기술과 접근 방식을 개발했으며, 이는 오늘날에도 널리 사용되고 있습니다.
데이터 웨어하우징은 여러 프로세서를 사용하여 시장에 출시되는 대량의 데이터를 처리하고 전례 없는 양의 데이터를 지원하는 새로운 MPP(Massively Parallel Processing) 데이터베이스를 통해 확장 가능한 분석의 첫 번째 시대를 열었습니다. BI 엔지니어, ETL 개발자 및 데이터 웨어하우스 엔지니어와 같은 역할은 데이터 웨어하우스의 다양한 요구사항을 해결했습니다. 데이터 웨어하우스와 BI 엔지니어링은 오늘날의 데이터 엔지니어링의 선구자였으며 여전히 이 분야에서 중심적인 역할을 하고 있습니다.
인터넷은 1990년대 중반에 주류를 이루었고, AOL, 야후, 아마존과 같은 완전히 새로운 세대의 웹 퍼스트 회사들을 만들었다. 닷컴 붐으로 인해 웹 애플리케이션과 이를 지원하기 위한 백엔드 시스템(서버, 데이터베이스 및 스토리지)에서 엄청난 활동이 발생했습니다. 인프라의 대부분은 비용이 많이 들고 단일화되었으며 라이센스가 많이 부여되었습니다. 이러한 백엔드 시스템을 판매하는 공급업체는 웹 애플리케이션이 생성할 데이터의 엄청난 규모를 예상하지 못했을 것입니다.

2000년대 초반: 현대 데이터 엔지니어링의 탄생

2000년대 초로 거슬러 올라가보죠. 90년대 후반의 닷컴 붐이 붕괴되고 생존자들의 작은 무리가 남겨졌습니다. 야후, 구글, 아마존과 같은 이러한 회사들 중 일부는 강력한 기술 회사로 성장할 것이다. 초기에 이 회사들은 1990년대의 전통적인 단일화, 관계형 데이터베이스 및 데이터 웨어하우스에 계속 의존하여 이러한 시스템을 한계에 이르게 했습니다. 이러한 시스템이 흔들리면서 데이터 증가를 처리하기 위해 업데이트된 접근 방식이 필요했습니다. 차세대 시스템은 비용 효율적이고 확장 가능하며 가용성과 신뢰성이 있어야 합니다.
데이터가 폭발적으로 증가함에 따라 서버, RAM, 디스크 및 플래시 드라이브와 같은 일반 하드웨어도 저렴해지고 어디서나 사용할 수 있게 되었습니다. 여러 혁신을 통해 대규모 컴퓨팅 클러스터에 분산 컴퓨팅 및 스토리지를 사용할 수 있게 되었습니다. 이러한 혁신은 분산화를 시작하고 전통적인 단일 서비스를 분리하기 시작했습니다. "빅 데이터" 시대가 시작되었습니다.
옥스퍼드 영어사전은 빅데이터(https://oreil.ly/8laGH)는 "특히 인간의 행동과 상호작용과 관련된 패턴, 경향, 연관성을 드러내기 위해 계산적으로 분석할 수 있는 큰 데이터 세트를 의미한다"고 정의한다 빅 데이터에 대한 또 다른 유명하고 간결한 설명은 데이터의 세 가지 V(속도, 다양성 및 볼륨)입니다.
2003년 구글은 구글 파일 시스템에 대한 논문을 발표했고, 그 직후인 2004년에는 초확장성 데이터 처리 패러다임인 맵리듀스에 대한 논문을 발표했습니다. 사실 빅데이터는 MPP 데이터 웨어하우스와 실험 물리학 프로젝트를 위한 데이터 관리에서 이전의 선례를 가지고 있지만, 구글의 출판물은 오늘날 우리가 알고 있는 데이터 기술과 데이터 엔지니어링의 문화적 뿌리에 대한 "빅뱅"을 만들었습니다. MPP 시스템과 MapReduce에 대한 자세한 내용은 각각 3장과 8장을 참조하세요.
구글 논문은 야후의 엔지니어들이 2006년에 아파치 하둡을 개발하고 나중에 오픈 소스로 만들도록 영감을 주었다. Hadoop의 영향은 아무리 강조해도 지나치지 않습니다. 대규모 데이터 문제에 관심이 있는 소프트웨어 엔지니어들은 이 새로운 오픈 소스 기술 생태계의 가능성에 끌렸다. 모든 규모와 유형의 기업에서 데이터가 수 테라바이트, 심지어 페타바이트로 증가하면서 빅데이터 엔지니어 시대가 도래했습니다.
그와 동시에 Amazon은 폭발적으로 증가하는 자체 데이터 요구사항을 충족하고 탄력적인 컴퓨팅 환경(Amazon Elastic Compute Cloud, EC2), 무한 확장 가능한 스토리지 시스템(Amazon Simple Storage Service, S3), 확장성이 뛰어난 NoSQL 데이터베이스(Amazon DynamoDB) 및 기타 많은 핵심 데이터 구성 요소를 구축해야 했습니다. 아마존은 아마존 웹 서비스(AWS)를 통해 내외부 소비를 위해 이러한 서비스를 제공하기로 결정하여 최초의 대중적인 퍼블릭 클라우드가 되었습니다. AWS는 방대한 범용 하드웨어 풀을 가상화하고 재판매함으로써 매우 유연한 종량제 리소스 시장을 창출했습니다. 개발자는 데이터 센터용 하드웨어를 구입하는 대신 AWS에서 컴퓨팅 및 스토리지를 임대할 수 있습니다.
AWS가 아마존의 고수익 성장 엔진이 되면서 구글 클라우드, 마이크로소프트, 애저, 디지털 오션과 같은 다른 퍼블릭 클라우드가 곧 뒤따랐습니다. 퍼블릭 클라우드는 21세기의 가장 중요한 혁신 중 하나이며 소프트웨어 및 데이터 애플리케이션의 개발 및 배포 방식에 혁명을 일으켰습니다.
초기의 빅 데이터 도구와 퍼블릭 클라우드는 오늘날의 데이터 에코의 기반을 마련했습니다. 현대의 데이터 환경과 현재 우리가 알고 있는 데이터 엔지니어링은 이러한 혁신 없이는 존재하지 않을 것입니다.

2000년대와 2010년대: 빅데이터 엔지니어링

Hadoop 에코시스템의 오픈 소스 빅 데이터 툴이 빠르게 성숙하고 확산됐습니다. 전 세계 기술에 민감한 기업들에게 '실리콘 밸리'의 기술들이 도입되었습니다. 처음으로, 모든 회사가 최고의 기술 회사가 사용하는 것과 동일한 최첨단 데이터 도구에 액세스할 수 있었고, 또한 배치 컴퓨팅에서 이벤트 스트리밍으로의 전환과 함께 또 다른 혁명이 일어나 빅 "실시간" 데이터의 새로운 시대를 열었습니다. (이 책을 통해 배치 및 이벤트 스트리밍에 대해 배울 수 있습니다.) 엔지니어들은 하둡, 아파치 피그, 아파치 하이브, 드멜, 아파치 HBase, 아파치 스톰, 아파치 카산드라, 아파치 스파크, 프레스토, 그리고 현장에 등장한 수많은 다른 신기술들을 선택할 수 있었습니다. 전통적인 엔터프라이즈 지향 및 GUI 기반 데이터 도구는 갑자기 구식으로 느껴졌고, 맵리듀스의 등장과 함께 코드 우선 엔지니어링이 유행했습니다. 우리(저자들)는 이 시간 동안 주변에 있었고, 늙은 도그마들이 큰 제단 위에서 갑자기 죽은 것처럼 느껴졌다 (험프리: 그냥 뒤쳐진 느낌이었다는 듯).
2000년대 후반과 2010년대에 폭발적으로 증가한 데이터 툴은 빅 데이터 엔지니어를 탄생시켰습니다. Hadoop, YARN, Hadoop Distributed File System(HDFS) 및 MapReduce를 포함한 Hadoop 에코시스템을 효과적으로 사용하기 위해서는 빅데이터 엔지니어가 소프트웨어 개발과 낮은 수준의 인프라 해킹에 능숙해야 했지만 강조점이 바뀌었습니다. 빅 데이터 엔지니어는 일반적으로 데이터 규모를 제공하기 위해 대량의 범용 하드웨어 클러스터를 유지 관리했습니다. 때때로 Hadoop 코어 코드에 풀 요청(Pull Request)을 제출하기도 하지만, 핵심 기술 개발에서 데이터 제공으로 초점을 전환했습니다.
빅 데이터는 빠르게 자체 성공의 희생양이 되었다 (험프리: 스스로 발목을 걸었다?). 유행어로, 빅 데이터는 2000년대 초반부터 2010년대 중반까지 인기를 얻었다. 빅 데이터는 끊임없이 증가하는 데이터 양과 빅 데이터 도구 및 서비스를 판매하는 기업의 끊임없는 파렴치한 마케팅 공세를 이해하려는 기업의 상상력을 포착했습니다. 엄청난 과대 광고 때문에 기업들이 소규모 데이터 문제를 해결하기 위해 빅데이터 툴을 사용하는 경우가 흔했으며, 때로는 하둡 클러스터를 10단계로 확장하기도 했습니다. 모든 사람들이 빅 데이터 작업에 참여하고 싶어하는 것처럼 보였습니다.
댄 에일리는 트위터(hips//oreil.ly/cp_ 20)에서 말하길,
빅데이터는 십대의 섹스와 같다: 모든 사람들이 그것에 대해 이야기하고, 아무도 그것을 어떻게 하는지 알지 못하며, 모든 사람들이 다른 사람들이 그것을 하고 있다고 생각하기 때문에, 모든 사람들이 그것을 하고 있다고 주장한다.
그 용어의 인기에도 불구하고, 빅 데이터는 활력을 잃었습니다. 무슨 일이었을까요? 한 단어: 단순화. 오픈 소스 빅 데이터 툴의 강력한 성능과 정교함에도 불구하고, 이러한 툴을 관리하는 것은 많은 작업이 필요했고 지속적인 주의가 필요했습니다. 종종 기업들은 이러한 플랫폼을 돌보기 위해 연간 수백만 달러의 비용이 드는 전체 빅 데이터 엔지니어 팀을 고용했습니다. 빅 데이터 엔지니어들은 종종 복잡한 툴링을 유지 관리하는 데 과도한 시간을 들였고, 비즈니스의 통찰력과 가치를 제공하는 데는 거의 시간이 걸리지 않았습니다.
오픈 소스 개발자, 클라우드 및 타사는 클러스터를 관리하는 데 드는 높은 관리 오버헤드와 비용 없이 빅 데이터를 추상화, 단순화 및 사용 가능하게 하고 오픈 소스 코드를 설치, 구성 및 업그레이드하는 방법을 모색하기 시작했습니다. 빅 데이터라는 용어는 본질적으로 많은 양의 데이터를 처리하기 위한 특정 시간과 접근 방식을 설명하는 유물이 되었습니다.
오늘날 데이터는 그 어느 때보다 빠르게 이동하고 그 어느 때보다 크게 증가하고 있지만 빅데이터 처리는 더 이상 별도의 용어를 사용할 가치가 없을 정도로 접근하기 쉬워졌습니다. 모든 기업은 실제 데이터 크기에 관계없이 데이터 문제를 해결하는 것을 목표로 하고 있습니다. 빅데이터 엔지니어는 이제 단순한 데이터 엔지니어입니다.

2020년대: 데이터 라이프사이클을 위한 엔지니어링

이 글을 쓰는 시점에서 데이터 엔지니어링의 역할은 빠르게 진화하고 있습니다. 우리는 이 진화가 가까운 미래에 빠른 속도로 계속될 것으로 기대합니다. 데이터 엔지니어들은 역사적으로 하둡, 스파크 또는 인포매티카와 같은 단일 프레임워크의 낮은 수준의 세부 사항을 다루는 경향이 있었지만, 이러한 경향은 분산, 모듈화, 관리 및 고도로 추상화된 툴로 이동하고 있습니다. 실제로 데이터 툴은 놀라운 속도로 증가하고 있습니다(그림 1-3 참조). 2020년대 초반에 인기 있는 추세는 분석가*의 삶을 더 쉽게 만들기 위해 조립된 기성 오픈 소스 및 타사 제품의 모음을 나타내는 현대적인 데이터 스택을 포함한다. 동시에 데이터 소스와 데이터 형식은 다양성과 크기 면에서 모두 증가하고 있습니다. 데이터 엔지니어링은 궁극적인 비즈니스 목표를 달성하기 위해 상호 운용과 레고 블록과 같은 다양한 기술을 연결하는 분야가 되고 있습니다
이 책에서 논의하는 데이터 엔지니어는 데이터 라이프사이클 엔지니어로 더 정확하게 설명할 수 있습니다. 데이터 라이프사이클 엔지니어는 추상화 및 단순화가 강화되어 더 이상 과거 빅데이터 프레임워크의 까다로운 세부 사항에 구애받지 않습니다. 데이터 엔지니어는 낮은 수준의 데이터 프로그래밍 기술을 유지하고 필요에 따라 이를 사용하지만, 점점 더 많은 역할이 보안, 데이터 관리, DataOps, 데이터 아키텍처, 조정 및 일반적인 데이터 라이프사이클 관리와 같은 가치 사슬의 상위 항목에 집중되고 있습니다.
툴과 워크플로우가 단순화됨에 따라 데이터 엔지니어의 태도가 눈에 띄게 변화하고 있습니다. 오픈 소스 프로젝트와 서비스는 누가 "가장 큰 데이터"를 가지고 있는지에 초점을 맞추는 대신 데이터를 관리하고 관리하는 것에 점점 더 관심을 갖고 있으며, 데이터를 더 쉽게 사용하고 발견하고 품질을 향상시킵니다. 데이터 엔지니어는 이제 CCPA 및 GDPR과 같은 약어로 전환됩니다. 파이프라인을 설계할 때, 그들은 개인 정보 보호, 익명화, 데이터 쓰레기 수집 및 규정 준수에 관심을 가집니다.
오래된 것이 다시 새로운 것.
빅데이터 이전의 대기업에서는 데이터 관리(데이터 품질 및 거버넌스 포함)와 같은 "엔터프라이즈" 기능이 일반적이었지만, 소규모 기업에서는 널리 채택되지 않았습니다. 어제의 데이터 시스템의 많은 어려운 문제가 해결되고, 깔끔하게 생산되고, 패키징됨에 따라, 기술자와 기업가들은 다시 "엔터프라이즈"로 초점을 옮겼지만, 기존의 엔터프라이즈 명령 및 제어 방식과는 대조적인 분산 및 민첩성에 중점을 두고 있습니다. 우리는 현재를 데이터 라이프사이클 관리의 황금기로 보고 있습니다. 데이터 엔지니어링 라이프사이클을 관리하는 데이터 엔지니어는 그 어느 때보다 향상된 도구와 기술을 보유하고 있습니다. 우리는 다음 장에서 데이터 엔지니어링 라이프사이클과 그 저류에 대해 더 자세히 논의합니다.