Meta에서 Jupyter 노트북 예약

블로그

홈페이지홈페이지 / 블로그 / Meta에서 Jupyter 노트북 예약

Jul 21, 2023

Meta에서 Jupyter 노트북 예약

Meta에서 Bento는 많은 내부 사용자가 활용하는 내부 Jupyter 노트북 플랫폼입니다. 또한 노트북은 보고서 및 워크플로를 만드는 데에도 널리 사용되고 있습니다(예:

Meta에서 Bento는 많은 내부 사용자가 활용하는 내부 Jupyter 노트북 플랫폼입니다. 노트북은 특정 간격으로 반복해야 하는 보고서 및 워크플로(예: 데이터 ETL 수행)를 만드는 데도 널리 사용되고 있습니다. 이러한 노트북을 사용하는 사용자는 필요한 속도로 노트북을 수동으로 실행해야 한다는 점을 기억해야 합니다. 이는 사용되는 노트북 수에 따라 확장되지 않기 때문에 사람들이 잊어버릴 수 있는 프로세스입니다.

이 문제를 해결하기 위해 우리는 Meta에서 사용할 수 있는 나머지 내부 도구와 완벽하게 어울리는 예약된 노트북 인프라를 구축하는 데 투자했습니다. 인프라에 투자하면 우리가 구축하는 모든 것에 개인 정보 보호가 내재되어 있음을 보장할 수 있습니다. 이를 통해 우리는 개인 정보를 보호하는 방식으로 혁신적이고 가치 있는 솔루션을 계속 구축할 수 있습니다.

데이터 개인 정보 보호 및 규정 준수를 위해 Meta 시스템을 통한 데이터 흐름에 대한 질문에 투명하게 답변할 수 있는 능력은 예약된 노트북 구현을 업계의 다른 제품과 차별화합니다.

이 게시물에서는 개인정보 보호 및 계보 인식 방식으로 Dataswarm(Apache Airflow 생각)이라는 배치 ETL 파이프라인 프레임워크와 Bento를 어떻게 결합했는지 설명하겠습니다.

Meta에서는 투명한 Dataswarm Operators 및 데이터 주석을 활용하여 예약된 아티팩트에 대한 정적 분석을 수행하고 데이터 흐름에 대한 일관된 내러티브를 유지함으로써 생산에 대한 신뢰도를 높이기 위해 최선을 다하고 있습니다. 노트북은 다음과 같은 이유로 특별한 문제를 제기합니다.

이 세 가지 고려 사항은 우리의 디자인 결정을 형성하고 영향을 미쳤습니다. 특히, ETL을 주로 수행하는 사람과 데이터 변환을 수행하고 시각화를 표시하는 사람으로 예약할 수 있는 노트북을 제한했습니다. 다른 부작용이 있는 노트북은 현재 범위를 벗어나므로 예약할 수 없습니다.

예약된 노트북을 지원하는 세 가지 주요 구성 요소는 다음과 같습니다.

위에서 강조한 대부분의 문제를 해결하기 위해 네트워크에 액세스하지 않고 컨테이너에서 노트북 실행 상태를 수행합니다. 또한 입력 및 출력 데이터 주석을 활용하여 데이터 흐름을 보여줍니다.

ETL의 경우 데이터를 가져와서 새로운 방식으로 작성합니다.

우리는 데이터가 의도된 목적으로만 사용되도록 하기 위해 Meta의 데이터 목적 프레임워크 내에 BentoOperator를 통합했습니다. 이 프레임워크는 데이터가 메타 스택 전체에 걸쳐 흐르고 변환될 때 데이터 사용 목적이 존중되도록 보장합니다. 노트북 예약의 일부로 사용자가 "목적 정책 영역"을 제공하며 이는 데이터 목적 프레임워크와의 통합 지점 역할을 합니다.

이제 노트북 예약을 위한 워크플로를 살펴보겠습니다.

우리는 노트북 헤더에서 직접 일정 진입점을 노출시켰으므로 사용자가 해야 할 일은 시작하기 위해 버튼을 누르는 것뿐입니다.

워크플로우의 첫 번째 단계는 일정에 대한 파이프라인을 자동으로 생성하는 데 사용되는 일부 매개변수를 설정하는 것입니다.

다음 단계에서는 Phabricator(Meta의 diff 검토 도구) diff가 생성되기 전에 생성된 파이프라인을 미리 보는 작업이 포함됩니다.

노트북을 실행하기 위한 파이프라인 코드 외에도 노트북 자체도 검토할 수 있도록 소스 제어에 체크인됩니다. 예약된 설정에서 노트북을 실행하려고 시도한 결과도 테스트 계획에 포함됩니다.

차이가 검토되고 착륙되면 일정은 다음 날 실행되기 시작합니다. 어떤 이유로든 노트북 실행이 실패하는 경우 일정 소유자에게 자동으로 알림이 전송됩니다. 또한 노트북 실행 디버깅을 돕기 위해 Bento에 직접 컨텍스트 창 확장을 구축했습니다.

개인 정보 보호 방식으로 예약된 노트북을 지원하는 문제를 해결했지만 예약 범위에 포함되는 노트북은 ETL을 수행하는 노트북이나 다른 부작용 없이 데이터 분석을 수행하는 노트북으로 제한됩니다. 이는 사용자가 최종적으로 예약하려는 노트북의 일부일 뿐입니다. 사용 사례 수를 늘리기 위해 SQL 셀 외에 다른 투명한 데이터 소스를 지원하는 데 투자할 예정입니다.