스택큐힙리스트

빅쿼리가 대부분의 스파크 작업을 대체했습니다. 무언가 빠트렸을까요? [종료됨] 본문

카테고리 없음

빅쿼리가 대부분의 스파크 작업을 대체했습니다. 무언가 빠트렸을까요? [종료됨]

스택큐힙리스트 2023. 11. 5. 11:48
반응형

나는 온프레미스 클러스터를 사용하여 몇 년 동안 Spark job을 개발해왔으며, 최근에는 팀이 Google Cloud Platform으로 이동하여 BigQuery와 같은 기능을 활용할 수 있게 되었습니다.


문제는 SQL보다는 PySpark보다 더 자주 처리 단계를 작성하게 된다는 것입니다. 그 이유는 다음과 같습니다:



  • 이해하기 쉽습니다 (상세하지 않음)

  • 유지 보수하기 쉽습니다 (SQL vs scala/python 코드)

  • 필요한 경우 GUI에서 손쉽게 실행할 수 있습니다

  • 파티셔닝, 캐싱 등에 대해 실제로 이해하지 않아도 빠릅니다.


결국 SQL을 사용할 수 없는 작업이 있는 경우에만 Spark를 사용합니다.


분명하게 말하자면, 내 작업 흐름은 보통 다음과 같습니다:



  • 전처리 (이전에는 Spark에서, 이제는 SQL에서)

  • 특성 공학 (이전에는 Spark에서, 이제는 주로 SQL에서)

  • 머신 러닝 모델 및 예측 (Spark ML)

뭔가 빠진 것이 있나요?
스파크 대신 이 방식으로 BigQuery를 사용하는 것에 단점이 있을까요?


감사합니다

답변 1


  • 코드의 테스트를 더 잘 할 수 있으며, 단위 테스트를 더 간단하게 작성하고 목 데이터 및 클래스와 함께 실행할 수 있습니다. 이를 BigQuery로 수행하는 대신에.

  • SQL (SparkSQL)을 사용하여 작업을 수행하고 데이터베이스, 파일, BQ와 같은 다른 데이터 소스를 조합할 수 있습니다.

  • BigQuery에 유효하지 않은 형식의 JSON 파일이 있고 이를 파싱할 수 없습니다. (파일은 유효한 JSON 형식을 가지고 있음)

  • 일부 경우에 보다 복잡한 로직을 자연스럽게 구현할 수 있으며, 예를 들어 중첩 필드의 배열을 탐색하거나 다른 복잡한 계산을 수행할 수 있습니다.

  • 특정 메트릭을 파이프라인에서 확인해야 할 때 더 나은 사용자 정의 모니터링이 가능하며, 관련된 메트릭(StatsD 등)을 쉽게 전송할 수 있습니다.

  • CI/CD 프로세스에 자연스러움을 더합니다.


BigQuery의 장점 (주의: 모든 데이터가 사용 가능한 경우):


  • 데이터가 편리한 형식으로 모두 사용 가능한 경우 SQL의 간단함

  • Python/Scala에 익숙하지 않은 DBA들도 기여할 수 있음(SQL을 알고 있기 때문에)

  • 배경에서 굉장히 성능이 좋은 멋진 인프라


두 가지 접근 방식 모두 GUI에서 결과를 빠르게 확인할 수 있습니다. 예를 들어, Jupyter Notebook은 PySpark을 즉시 실행할 수 있습니다. 그러나 ML 관련 특성에 대한 메모를 추가할 수는 없습니다.

답변 2

클라우드 기반 빅 데이터 처리 플랫폼인 BigQuery는 Spark 작업을 대부분 대체했다. 이로 인해 빅 데이터 처리에 대한 패러다임이 변화하고 있는데, 이에 대해 자세히 알아보고자 한다. BigQuery가 Spark 작업을 대체한 이유와 그에 따른 장단점을 비교해보고, 빅 데이터 처리의 현상을 조망해보자.
BigQuery는 Google Cloud Platform의 핵심 서비스로, 데이터 분석과 쿼리 작업을 위한 스케일 가능한 솔루션을 제공한다. Spark는 Apache Hadoop 클러스터에서 대규모 데이터 처리 작업을 수행하는 데 널리 사용되었다. 그럼에도 불구하고 BigQuery가 Spark를 대체하는 이유는 무엇일까?
첫째, BigQuery는 놀라울 정도로 강력한 쿼리 성능을 제공한다. 빠른 응답 시간을 요구하는 실시간 분석이나 대화형 쿼리 작업에서 탁월한 성능을 보여준다. Spark는 분산 처리를 위한 수많은 작업자 노드를 필요로 하기 때문에 비용 및 성능 측면에서 BigQuery보다 떨어질 수밖에 없다.
둘째, BigQuery는 서버리스 아키텍처에 기반하여 이러한 비용 및 성능 문제를 해결한다. 사용자는 인프라 관리에 신경 쓰지 않고 쿼리 작성에 집중할 수 있다. 반면 Spark는 자체 클러스터 관리를 필요로 하며, 이로 인해 초기 설정, 환경 구성, 유지 보수 등의 추가 작업이 필요하다.
하지만 BigQuery를 사용하기 위해서는 일부 기능을 제한해야 하는 경우가 있다. 예를 들어, Spark는 데이터 처리 파이프라인을 만들기 위한 다양한 라이브러리와 통합 기능을 제공한다. Spark를 사용하면 데이터 전처리, 머신러닝, 스트리밍 등 다양한 작업을 하나의 플랫폼에서 수행할 수 있다.
결론적으로, BigQuery는 Spark 작업을 대체하는 경향이 있는데, 이는 기존의 빅 데이터 처리 방식이 변화하고 있다는 것을 의미한다. BigQuery는 높은 성능과 비용 효율성을 제공하며, 서버리스 아키텍처로 사용자 편의성을 극대화한다. 그러나 Spark는 다양한 작업을 통합하여 처리할 수 있는 강력한 플랫폼이다. 적절한 상황에 따라 선택해야 하며, 기업의 요구 사항과 데이터 처리 방식에 따라 최적의 솔루션을 찾아야 한다.

반응형
Comments