주요 컨텐츠로 이동

연결할 수 없는 데이터 연결하기; Databricks ARC를 통한 간단하고 확장성있는 자동화된 데이터 연결

Robert Whiffin
Marcell Ferencz
Milos Colic

in

이 포스트 공유하기

(번역: Youngkyong Ko) Original Post

Databricks ARC

2023년 4월, 우리는 단일 테이블 내에서 데이터를 간단하고 자동으로 연결할 수 있는 Databricks ARC의 출시를 발표했습니다. 오늘 우리는 개방적이고 확장 가능하며 간단한 동일 프레임워크를 사용하여 ARC가 서로 다른 두 테이블 간의 링크를 찾을 수 있는 향상된 기능을 발표합니다. 데이터 연결은 정부 기관 전반에 걸쳐 공통된 과제입니다. 영국 법무부에서 개발하여 ARC 내에서 연결 엔진 역할을 하는 Splink는 강력하고 개방적이며 설명 가능한 개체 확인(entity resolution)  패키지를 제공하기 위해 존재합니다.

데이터 연결은 일반적으로 두 개의 서로 다른 테이블 사이에 직접 연결되는 공통 필드가 하나 이상 있는 간단한 작업입니다. 국가보험번호(영국의 개인식별번호인 National Insurance Number)를 예로 들 수 있는데, 이 번호가 동일한 두 레코드는 동일한 사람이어야 합니다. 하지만 이러한 공통 필드 없이 데이터를 연결하려면 어떻게 해야 할까요? 아니면 데이터 품질이 좋지 않을 때는 어떻게 해야 할까요? 국가보험번호가 같은 경우라도 누군가 잘못 적었을 가능성도 있습니다. 이러한 경우 확률적 데이터 연결, 즉 퍼지 매칭의 영역에 들어갑니다. 아래는 2개의 테이블을 연결을 통해  보다 완전한 뷰를 만들 수 있지만 연결할 공통 키가 없는 경우를 보여줍니다:

National Insurance number

Historical Data

분명히 이 테이블에는 동일한 사람에 대한 정보가 포함되어 있는데, 하나는 현재이고 다른 하나는 과거 데이터입니다. 하지만 둘 사이에 공통 필드가 없다면 현재 데이터와 과거 데이터를 연결하는 방법을 프로그래밍 방식으로 어떻게 결정할 수 있을까요?

이 문제를 해결하기 위해서 전통적으로 전문 개발자 그룹이 오랜 시간에 걸쳐 수작업으로 작성한 하드 코딩된 규칙에 의존해 왔습니다. 위의 경우 생년월일과 이름 비교와 같은 간단한 규칙을 사용하면 되지만, 수백만 개의 기록에 걸쳐 다양한 속성이 있는 경우에는 이러한 접근 방식은 확장성이 낮습니다. 필연적으로 수백, 수천 개의 고유 규칙이 포함된 엄청나게 복잡한 코드를 개발해야 하고, 새로운 엣지 케이스가 발견됨에 따라 그 규칙 수는 계속 늘어날 수밖에 없습니다. 그 결과 시스템이 취약하고 확장하기 어렵고 변경하기가 더욱 어려워집니다. 이러한 시스템의 주 담당자가 퇴사하면 상당한 위험과 기술 부채를 나타내는 블랙박스 시스템만 조직에 남게 됩니다.

확률적 연결 시스템은 레코드 간의 통계적 유사성을 의사 결정의 기초로 사용합니다. 머신 러닝(ML) 시스템은 두 레코드가 언제 충분히 유사한지에 대한 수동 지정에 의존하지 않고 데이터에서 유사성 임계값이 어디에 있는지 학습합니다. 지도형(Supervised) ML 시스템은 동일한 레코드(Apple & Aple)와 그렇지 않은 레코드(Apple & Orange)의 예를 사용하여, 모델이 이전에 본 적이 없는 레코드 쌍(Apple & Pear)에 적용할 수 있는 일반적인 규칙 집합을 정의함으로써 이러한 임계값을 학습합니다. 비지도(Unsupervised) 시스템에는 이러한 요구 사항이 없으며 대신 기본 레코드 유사성만 살펴봅니다. ARC는 표준과 휴리스틱을 적용하여 규칙을 수동으로 정의할 필요성을 없애고 대신 느슨한 규칙 집합을 사용하고 컴퓨터가 어떤 규칙이 좋은지 알아내는 어려운 작업을 수행하도록 함으로써 이러한 비지도 접근 방식을 단순화합니다.

두 개의 데이터셋을 ARC로 연결하려면 몇 줄의 코드만 있으면 됩니다:

Datasets with ARC

Datasets with ARC

이 그림에서  첫 줄에는 이름과 성에 오타가 있을 뿐만 아니라 열이 바뀌어 있는데, 이러한 오타와 뒤바뀜에도 불구하고 ARC가 기록을 서로 연결(합성!)한 방법을 강조해서 보여 줍니다.

ARC를 이용한 연결이 도움이 되는 경우

ARC를 이용하여 자동화된 적은 노력으로 다양한 기회를 창출할 수 있습니다:

  • 마이그레이션 및 통합에 소요되는 시간과 비용을 절감합니다.
    • 과제: 모든 성숙한 시스템에는 필연적으로 중복 데이터가 존재합니다. 이러한 데이터셋과 파이프라인을 유지 관리하면 유사한 데이터의 사본을 여러 개 보유함으로써 불필요한 비용과 위험이 발생합니다(예: 보안되지 않은 PII 데이터의 사본).
    • ARC 활용: ARC는 테이블 간의 유사성을 자동으로 정량화하는 데 사용할 수 있습니다. 즉, 중복 데이터와 파이프라인을 더 빠르고 저렴한 비용으로 식별할 수 있어 새로운 시스템을 통합하거나 기존 시스템을 마이그레이션할 때 가치 창출 시간을 단축할 수 있습니다.
  • 부서 간, 정부 간 협업을 활성화합니다.
    • 과제: 중앙정부, 분권정부, 지방정부 간에 데이터를 공유하는 데 있어 기술적인 문제가 있어 모든 정부 영역에서 공익을 위해 데이터를 활용하는 데 장애가 되고 있습니다. 코로나19 팬데믹 기간 동안 데이터 공유 능력은 정부의 대응에 매우 중요했으며, 데이터 공유는 2020 영국 국가 데이터 전략의 5가지 미션을 관통하는 핵심 요소입니다.
    • ARC 활용: ARC는 기술 장벽을 낮춰 데이터 연결을 대중화합니다. Python을 작성할 수 있다면 누구나 데이터 연결을 시작할 수 있습니다. 또한, ARC는 강력한 연결 엔진인 Splink의 학습 곡선을 완화하는 데 사용할 수 있어, 초보 데이터 링커가 새로운 도구의 복잡한 사용법을 배우면서 동시에 생산성을 높일 수 있습니다.
  • 데이터의 특성에 맞는 모델로 데이터를 연결할 수 있습니다.
    • 과제: 시간과 비용이 많이 드는 연결 모델은 다양한 데이터 프로필에 걸쳐 일반화할 수 있는 모델을 구축하려는 동기를 만듭니다. 일반 모델이 전문 모델보다 성능이 낮을 것이라는 점은 자명한 사실이지만, 모델 훈련의 현실적인 어려움 때문에 종종 각 연결 프로젝트마다 모델을 훈련시키기 어렵습니다.. 
    • ARC 활용: ARC의 자동화를 이용하면 특정 데이터셋을 연결하도록 훈련된 전문 모델을 사람의 개입을 최소화하면서 대규모로 배포할 수 있습니다. 따라서 데이터 연결 프로젝트의 장벽이 크게 낮아집니다

ARC에 자동화된 데이터 연결 기능을 추가하는 것은 개체 확인과 데이터 통합 영역에 중요한 기여를 합니다. 공공 부문은 공통 키 없이 데이터셋들을 연결함으로써 데이터의 진정한 힘을 활용하고, 내부 혁신과 현대화를 추진하며, 시민들에게 더 나은 서비스를 제공할 수 있습니다. ARC GitHub 리포지토리에서 Databricks Repo에 복제할 수 있는 예제 노트북을 사용해 지금 바로 시작할 수 있습니다. ARC는 완전한 오픈 소스 프로젝트로, PyPi에서 pip으로 설치할 수 있으며, 시작하기 위해 사전 데이터 연결이나 개체 확인이 필요하지 않습니다.

정확도 - 연결하느냐 마느냐 그것이 문제로다

현실 세계에서 데이터 연결의 고질적인 문제는 정확성입니다. 모든 링크를 올바르게 식별했는지 어떻게 알 수 있을까요? 만들어진 링크가 모두 정확하다 할지라도 일부 연결이 누락되었을 가능성도 있습니다. 연결 모델을 완벽하게 평가하는 유일한 방법은 모든 레코드 링크를 미리 알고 있는 참조 데이터 집합을 확보하는 것입니다. 즉, 모델에서 예측한 링크와 알려진 링크를 비교하여 정확도 측정값을 계산할 수 있습니다.

연결 모델의 정확도를 측정하는 일반적인 방법에는 세 가지가 있습니다: 정밀도(Precision), 재현율(Recall) 그리고 F1-score입니다.

  • 정밀도(Precision): 예측된 링크 중 몇 퍼센트가 정확한가?
  • 재현율(Recall): 모델이 전체 링크 중 몇 퍼센트의 링크를 찾았나?
  • F1 점수(F1-score): 정밀도와 재현율을 혼합한 지표로, 낮은 값에 더 많은 가중치를 부여합니다. 즉, 높은 F1 점수를 얻으려면 모델은 정밀도와 재현율 중 어느 하나만 우수하고 다른 하나는 보통인 것이 아니라 둘 다 우수해야 합니다.

그러나 이러한 지표는 실제 링크를 나타내는 레이블 세트(정답셋)에 액세스할 수 있는 경우에만 적용할 수 있습니다. 대부분의 경우 이러한 레이블은 존재하지 않으며 그것을 만드는 것은 노동 집약적인 작업입니다. 데이터 연결 비용을 낮추기 위해 가능한 한 레이블 없이 작업하고 싶지만, 레이블이 없으면 연결 모델을 객관적으로 평가할 수 없다는 난제가 있습니다.

ARC의 성능을 평가하기 위해 FEBRL을 사용하여 30,000개의 중복 레코드가 포함된 130,000개의 합성 데이터셋을 만들었습니다. 이 데이터셋은 깨끗한 레코드 100,000개와 이들과 연결해야 하는 레코드 30,000개의 두 파일로 나뉘었습니다. 두 데이터 세트를 서로 연결할 때는 앞서 설명한 비지도 메트릭을 사용했습니다. 위의 각 데이터셋에 대해 100회 실행에 걸쳐 메트릭에 대해서만 최적화하여 가설을 테스트했으며, 최적화 프로세스에 이를 포함시키지 않고 예측의 F1 점수를 별도로 계산했습니다. 아래 차트는 가로축의 메트릭과 세로축의 경험적 F1 점수 간의 관계를 보여줍니다.

ARC performance on synthetic Febrl datasets

둘 사이에는 양의 상관관계가 관찰되었으며, 이는 하이퍼 파라미터 최적화를 통해 예측 클러스터의 메트릭을 높이면 정확도 높은 모델로 이어질 수 있음을 나타냅니다. 이를 통해 ARC는 라벨링된 데이터를 제공하지 않고도 시간이 지남에 따라 강력한 기준 모델에 도달할 수 있습니다. 이는 라벨링된 데이터가 없을 때 우리의 지표를 최대화하는 것이 올바른 데이터 연결을 위한 좋은 프록시임을 시사하는 강력한 데이터 포인트를 제공합니다.

ARC GitHub 리포지토리를 Databricks Repo에 복제한 후 예제 노트북을 실행하기만 하면 지금 바로 데이터 연결을 시작할 수 있습니다. 이 리포지토리에는 샘플 데이터와 코드가 포함되어 있어 코드 몇 줄만으로 서로 다른 두 개의 데이터 집합을 연결하거나 하나의 데이터 집합을 중복 제거하는 방법을 안내해 줍니다. ARC는 완전한 오픈 소스 프로젝트로서 PyPi에 pip 설치하여 사용할 수 있으며, 데이터 연결이나 개체 확인에 대한 사전 경험이 없어도 시작할 수 있습니다.

기술 부록 - Arc는 어떻게 작동하나요?

Arc의 작동 방식, 최적화 대상 메트릭, 최적화 방법에 대한 자세한 개요는 아래 문서를 참조하세요: https://databricks-industry-solutions.github.io/auto-data-linkage/

Databricks 무료로 시작하기

관련 포스트

모든 산업 포스트 보기