OPPO 사례 | Alluxio의 데이터&AI 레이크 및 창고 통합 사례

공유 게스트:
Fu Qingwu - OPPO 데이터 아키텍처 그룹의 빅 데이터 설계자

OPPO의 실제 적용에서는 자체 개발한 Shuttle과 Alluxio를 완벽하게 결합하여 Shuttle 서비스 전체의 성능을 크게 향상시켜 기본적으로 성능을 두 배로 향상시켰습니다. 이러한 최적화를 통해 시스템 압력을 약 절반으로 줄이고 처리량을 직접적으로 두 배로 높이는 데 성공했습니다. 이 조합은 성능 문제를 해결할 뿐만 아니라 OPPO의 서비스 시스템에 새로운 활력을 불어넣습니다.

전체 공유 보기

전문 버전 공유 내용↓

공유 주제: "Alluxio의 Data&AI Lake 및 Warehouse 통합 사례"

Data&AI 통합 데이터 레이크 웨어하우스 아키텍처

위 그림은 OPPO의 현재 전체 아키텍처를 보여 주며 주로 두 부분으로 나뉩니다.

1、데이터

2、AI

데이터 분야에서 OPPO는 주로 구조화된 데이터, 즉 일반적으로 SQL을 사용하여 처리되는 데이터에 중점을 둡니다. AI 분야에서는 비정형 데이터에 중점을 두고 있다. 정형 및 비정형 데이터의 통합 관리를 달성하기 위해 OPPO는 카탈로그 메타데이터 형식으로 관리되는 데이터 및 카탈로그라는 시스템을 구축했습니다. 동시에 이는 상위 데이터 액세스 계층이 Alluxio 분산 캐시를 사용하는 데이터 레이크 서비스이기도 합니다.

우리가 Alluxio를 사용하기로 선택한 이유는 무엇입니까?

OPPO의 국내 컴퓨터실 규모가 크기 때문에 컴퓨팅 노드의 유휴 메모리 양이 상당합니다. 우리는 하루 평균 약 1PB 정도의 메모리가 유휴 상태인 것으로 추정하고 있으며, 이러한 분산 메모리 관리 시스템을 통해 이를 최대한 활용할 수 있도록 하고자 합니다. 주황색 부분은 비정형 데이터의 관리를 나타냅니다. 우리의 목표는 데이터 레이크 서비스를 사용하여 비정형 데이터를 정형 데이터만큼 쉽게 관리하고 AI 교육을 가속화하는 것입니다.

DAA-카탈로그

DAA-카탈로그(Data and AI Catalog)는 데이터 아키텍처의 최하위에서 우리 팀이 추구하는 목표입니다. OPPO가 업계 최고의 기업과 경쟁하기 위해 노력하고 있기 때문에 이 이름을 선택했습니다. 현재 우리는 Databricks가 Data&AI 분야에서 가장 뛰어난 회사 중 하나라고 믿습니다. 기술이든, 고급 개념이든, 비즈니스 모델이든, Databricks는 좋은 성과를 거두었습니다.

Databricks의 Unicatalog에서 영감을 받아 Databricks의 서비스 데이터 및 AI 교육 프로세스가 주로 Unity Catalog를 중심으로 진행된다는 것을 알 수 있습니다. 따라서 우리는 데이터 레이크 웨어하우징 공간에서 업계 최고와 경쟁하겠다는 목표를 추구하기 위해 DAA-Catalog를 구축하기로 결정했습니다.

구체적으로 이 기능은 두 가지 주요 모듈로 나뉩니다.

- Metastore(메타데이터 저장) : 메타데이터 관리를 담당하는 부분으로, 하부 레이어는 Iceberg 메타데이터 관리를 기반으로 한다. 동시 커밋 및 수명주기 관리가 포함됩니다. 동시에 우리는 데이터가 Alluxio의 거대한 메모리 캐시 풀에 먼저 들어가고 각 레코드의 실시간 삽입 및 쿼리를 실현하기 때문에 Down Service를 사용하여 관리합니다. 

- 관리 : 이 부분이 DOM 서비스를 선택하는 이유입니다. 데이터가 입력된 후 Alluxio의 메모리에 먼저 저장되기 때문에 2급 실시간 성능을 구현합니다. 전체 프로세스 동안 데이터는 들어온 후 Catalog를 통해 자동으로 Iceberg에 싱크되며, 메타데이터는 기본적으로 Alluxio에 있습니다. 

왜 이런 2차 실시간 기능을 구현해야 할까요?

주로 이전에 Iceberg를 사용할 때 심각한 문제를 발견했기 때문에 기본적으로 5분마다 커밋이 필요하며, 각 커밋은 많은 수의 작은 파일을 생성하므로 Flink 컴퓨팅 시스템과 HDFS의 메타데이터에 많은 부담을 줍니다. 동시에 이러한 파일도 수동으로 정리하고 병합해야 합니다. Alluxio 서비스를 통해 메모리에 직접 데이터를 입력할 수 있으며, Down Service 역시 Catalog를 통해 관리됩니다. 전체 과정에서 데이터는 입력 후 자동으로 Iceberg로 싱크되며, 메타데이터는 기본적으로 Alluxio에 모두 들어있습니다.

OPPO는 Alluxio와 많은 협력을 하고 있기 때문에 버전 2.9를 기반으로 일부 조정을 했고 성능이 크게 향상되었습니다. 스트리밍 파일 읽기 및 쓰기는 데이터 레이크에서 구현됩니다. 전체 파일을 커밋할 필요 없이 각 데이터 조각을 커밋처럼 처리할 수 있습니다.

구조화된 데이터 가속

빅 데이터의 발전으로 많은 인프라가 상당히 완성되어 다양한 시나리오의 문제를 해결하고 있습니다. 그러나 우리는 유휴 리소스와 메모리를 보다 효율적으로 활용하는 방법에 중점을 두고 있습니다. 따라서 우리는 캐시 가속과 핫 테이블 및 인덱스 최적화라는 두 가지 측면에서 시작하기 위해 최선을 다하고 있습니다.

우리는 데이터브릭스의 기술에서 영감을 받아 데이터를 동적으로 집계하는 기능인 '동적 클러스터(Dynamic Cluster)'라는 개념을 제안했습니다. 복도 곡선은 내부적으로도 사용되지만 그 위에 "순서" 및 "순서 증분" 정렬 알고리즘을 구현하여 이를 융합하여 동적 클러스터를 형성했습니다. 이 혁신은 데이터 입력 후 데이터를 동적으로 집계하여 쿼리 효율성을 향상시킬 수 있습니다. 복도 곡선과 비교하면 "순서" 알고리즘이 더 효율적이지만 복도 곡선이 실시간 변경에 더 우수합니다. 이러한 통합을 통해 데이터를 쿼리하고 집계하는 보다 유연하고 효율적인 방법이 제공됩니다.

비정형 데이터 관리

위 그림은 주로 AI 분야와 관련된 비정형 데이터 분야의 우리 작업 중 일부를 보여줍니다. OPPO 내에서 처음에 AI 훈련에 사용된 도구는 상대적으로 오래되었습니다. 데이터는 일반적으로 스크립트를 통해 직접 읽거나 데이터가 Naked txt 파일 또는 Naked 이미지 파일 형태로 개체 저장소에 저장됩니다. Transfer 서비스를 사용하면 데이터를 데이터 레이크로 자동으로 가져오고 패키지된 이미지 데이터를 업데이트 세트 형식으로 잘라낼 수 있습니다. AI 분야, 특히 이미지 처리 분야에서 업데이트 세트는 웹 데이터 세트 인터페이스와 호환될 뿐만 아니라 H5 형식으로 변환할 수도 있는 효율적인 데이터 세트 인터페이스입니다.

우리의 목표는 메타데이터를 처리하여 비정형 데이터 관리를 정형 데이터만큼 편리하게 만드는 것입니다. 데이터 변환 프로세스 중에 구조화되지 않은 데이터의 메타데이터가 카탈로그에 기록됩니다. 동시에 우리는 대형 모델이나 자연어를 사용하여 호수 창고의 데이터를 더 쉽게 쿼리할 수 있도록 대형 모델과 결합하고 메타데이터의 일부 정보를 벡터 데이터베이스에 기록했습니다. 이번 통합 작업의 목표는 비정형 데이터의 관리 효율성을 높이고, 정형 데이터 관리와 일관성을 높이는 것입니다.

비정형 데이터 - 메타데이터 관리 예

위 사진은 OPPO의 비정형 데이터 관리 예시로, SQL처럼 텍스트와 그림의 위치를 ​​검색할 수 있다.

데이터 프롬프터

DataPrompter 구축을 선택한 원래 의도는 대형 모델의 더 나은 활용을 추구하는 데서 비롯됩니다. OPPO는 데이터를 대형 모델과 결합하는 분야에 전념하고 있으며 내부 채팅 소프트웨어를 통해 사용자가 모든 데이터를 쉽게 쿼리할 수 있는 데이터 차트라는 제품을 출시했습니다. 예를 들어 어제 휴대폰 판매량을 쉽게 확인하거나, 샤오미 휴대폰 판매량과의 판매량 차이를 비교하고, 자연어를 통해 데이터 분석을 할 수 있다.

제품 구축 과정에서 각 분야의 데이터 테이블에는 전문 비즈니스 인력이 프롬프터를 입력해야 합니다. 이는 각 테이블의 프롬프터에 오랜 시간이 걸리기 때문에 전체 데이터 레이크 웨어하우스나 제품의 홍보에 어려움을 가져옵니다. 예를 들어 금융 테이블 데이터를 입력하려면 테이블의 필드, 비즈니스 도메인의 의미, 확장 차원 테이블 등 전문적이고 기술적인 정보를 자세하게 입력해야 합니다.

우리의 궁극적인 목표는 데이터가 호수 창고에 들어간 후 대형 모델이 상위 수준 데이터를 쉽게 이해할 수 있도록 하는 것입니다. 데이터가 레이크에 입력되는 과정에서 비즈니스는 데이터 프롬프터에 대한 축적된 경험을 결합하여 일부 규정된 정보를 표시해야 하며, HBO 서비스에서 제공하는 몇 가지 일반적인 쿼리를 사용하여 최종적으로 대형 모델을 쉽게 이해할 수 있는 프롬프터 템플릿을 생성해야 합니다. . 이 조합은 모델이 비즈니스 데이터를 더 잘 이해할 수 있도록 하고 Hucang과 대형 모델의 통합을 보다 원활하게 만드는 것을 목표로 합니다.

Alluxio는 몇 초 만에 실시간으로 호수에 들어갈 수 있도록 도와줍니다.

Alluxio는 몇 초 안에 실시간으로 호수에 들어갈 수 있도록 도와주며, 이는 주로 다음과 같이 나뉩니다.

1、실제 데이터

2、기본 데이터

3、덤프 서비스

4. 파일 스트리밍 읽기 및 쓰기

Hucang 건축에서 Alluxio의 실천

Spark RSS와 결합된 Alluxio

우리는 처음에 자체 개발한 Spark Shuttle Service를 통해 Alluxio와 Spark RSS 서비스를 결합하고 Shuttle이라는 이름으로 오픈 소스를 선택했습니다. 처음에 우리의 기본 기반은 분산 파일 시스템을 기반으로 했지만 성능 문제가 발생하여 Alluxio를 찾았습니다.

Shuttle과 Alluxio의 완벽한 조합은 Shuttle 서비스 전체의 성능을 크게 향상시켜 기본적으로 성능을 두 배로 향상시켰습니다. 이러한 최적화를 통해 시스템 압력을 약 절반으로 줄이고 처리량을 직접적으로 두 배로 높이는 데 성공했습니다. 이러한 결합은 성능 문제를 해결할 뿐만 아니라 서비스 시스템에 새로운 활력을 불어넣습니다.

OPPO의 후속 연구 개발에서 Alluxio+Shuttle을 기반으로 한 프레임워크는 더 많은 혁신을 달성했습니다. Shuttle 오퍼레이터와 브로드캐스트 오퍼레이터 모두를 메모리 데이터 수준으로 최적화합니다. 특히 단일 포인트 Reduce를 처리할 때 효율적인 메모리 데이터 상호작용을 통해 데이터가 왜곡될 때 원래 최대 50분까지 걸렸던 정렬 작업을 마이그레이션할 수 있습니다. 새로운 솔루션을 도입한 후 처리 시간이 10분 미만으로 성공적으로 단축되었습니다. 이러한 최적화는 처리 효율성을 크게 향상시킬 뿐만 아니라 데이터 왜곡이 시스템 성능에 미치는 영향을 효과적으로 완화합니다.

브로드캐스트 결과는 매우 중요하며 특히 Spark에서는 기본 브로드캐스트 크기가 10M이므로 모든 브로드캐스트 데이터가 Java 측에 저장되어야 하기 때문에 Java 직렬화 후에 확장되기 쉽고 이로 인해 OOM(Out of Memory) 문제가 발생합니다. . 온라인 환경에서 이런 일이 많이 발생합니다.

이 문제를 해결하기 위해 현재 방송 데이터를 Alluxio에 저장하고 있습니다. 이를 통해 최대 10GB까지 거의 모든 크기의 데이터를 브로드캐스트할 수 있습니다. 이 혁신은 OPPO의 온라인 여러 사례에서 성공적으로 구현되었으며 효율성 향상에 큰 영향을 미쳤습니다.

퍼블릭 클라우드/하이브리드 클라우드에서의 Alluxio 애플리케이션 실습

OPPO의 퍼블릭 클라우드 빅데이터 시스템, 특히 싱가포르에서는 주로 AWS를 인프라로 사용합니다. 초기 단계에서는 AWS에서 제공하는 탄력적 컴퓨팅 서비스(EMR)를 사용했습니다. 그러나 최근 몇 년간 업계 전반의 경제 상황은 그리 낙관적이지 않아 많은 기업들이 비용 절감과 효율성 향상을 추구하고 있습니다. 이러한 추세에 직면하여 우리는 클라우드의 탄력적인 자원을 활용하여 새로운 아키텍처를 구축하는 해외 퍼블릭 클라우드 분야의 자체 개발 솔루션을 제안했습니다. 이 혁신적인 솔루션의 핵심은 빅 데이터 시스템에 대한 핵심 지원을 제공하는 Alluxio+Shuttle의 조합에 달려 있습니다.

Alluxio+Shuttle 솔루션의 중요한 장점은 Alluxio 클러스터가 Shuttle에만 국한되지 않으며 데이터 캐싱 및 메타데이터 캐싱을 포함한 다른 서비스에 대한 지원을 제공할 수 있다는 것입니다. 퍼블릭 클라우드에서는 제출하는 동안 S3의 List 작업에 시간이 많이 소요된다는 것을 알고 있습니다. Alluxio와 오픈 소스 Magic 커밋 및 Shuttle 솔루션을 결합하여 컴퓨팅 비용을 약 80% 절감하는 등 상당한 비용 절감 효과를 달성했습니다. .

하이브리드 클라우드 환경에서는 AI팀에 서비스를 제공합니다. 데이터 레이크 하단에 객체 저장소가 있기 때문에 훈련 과정에서 Alibaba Cloud의 GPU 카드를 사용했으며 자체 구축한 GPU 리소스와도 결합했습니다. 전용선의 제한된 대역폭과 높은 비용으로 인해 데이터 복사에는 효과적인 캐시 계층이 필요합니다. 처음에는 스토리지팀에서 제공하는 솔루션을 채택했지만 확장성과 성능이 이상적이지 않았습니다. Alluxio를 도입한 후 여러 시나리오에서 IO 가속화를 여러 번 달성하여 데이터 처리에 대한 보다 효율적인 지원을 제공했습니다.

전망

OPPO의 클러스터 규모는 중국에서 수만 개에 달해 상당히 큰 규모를 형성하고 있다. 향후에는 메모리 자원을 더욱 깊이 파고들어 내부 저장 공간을 더욱 완벽하게 활용할 계획입니다. 팀은 실시간 컴퓨팅 프레임워크인 Flink와 오프라인 처리 프레임워크인 Spark를 모두 보유하고 있으며, 두 사람은 서로의 Alluxio 애플리케이션 경험을 통해 Alluxio와 데이터 레이크의 심층적인 통합 개발을 달성할 수 있습니다.

빅데이터와 머신러닝의 결합 물결 속에서 우리는 업계 동향을 따라잡고 있습니다. 데이터 아키텍처와 인공지능(AI)을 하부부터 심층적으로 통합해 AI에 대한 고품질 서비스를 최우선으로 제공한다. 이러한 통합은 기술적 진보일 뿐만 아니라 미래 개발을 위한 전략적 계획이기도 합니다.

마지막으로 퍼블릭 클라우드 환경에서 비용을 절감하는 데 도움이 되는 Alluxio의 장점을 자세히 살펴보겠습니다. 여기에는 기술적 최적화뿐만 아니라 클라우드 컴퓨팅 리소스의 보다 효과적인 관리도 포함되어 회사의 지속 가능한 발전을 위한 견고한 지원을 제공합니다.

"Qing Yu Nian 2"의 불법 복제된 리소스가 npm에 업로드되어 npmmirror가 unpkg 서비스를 중단하게 되었습니다. Zhou Hongyi: Google에 남은 시간이 많지 않습니다. time.sleep(6) 여기서는 어떤 역할을 합니까? 리누스는 "개사료 먹기"에 가장 적극적입니다! 새로운 iPad Pro는 12GB의 메모리 칩을 사용하지만 8GB의 메모리를 가지고 있다고 주장합니다. People's Daily Online은 사무용 소프트웨어의 마트료시카 스타일 충전을 검토합니다. "세트"를 적극적으로 해결해야만 Flutter 3.22 및 Dart 3.4 출시가 가능 합니다. 'ref/reactive'가 필요 없는 Vue3의 새로운 개발 패러다임, 'ref.value'가 필요 없음 MySQL 8.4 LTS 중국어 매뉴얼 출시: 데이터베이스 관리의 새로운 영역을 마스터하는 데 도움 Tongyi Qianwen GPT-4 수준 메인 모델 가격 인하 97% 증가, 1위안 200만 토큰
{{o.이름}}
{{이름}}

추천

출처my.oschina.net/u/5904778/blog/11048588