본 번역은 검증되지 않았습니다. AIP를 통해 영문원문으로부터 번역되었습니다.

Pipeline Builder에서 고유 ID 생성하기

Pipeline Builder에서 고유 ID는 데이터 추적, 처리, 분석을 용이하게 하며, 각 레코드를 개별적으로 식별하고 적절하게 처리할 수 있도록 합니다. 이러한 이유로 레코드에 고유 식별자(ID)를 생성하는 것이 종종 필요합니다. 이 섹션에서는 단조 증가 ID를 사용하는 것이 최선의 방법인지와 왜 문자열 열의 연결을 따른 SHA256 해시를 사용하는 방법이 선호되는지 설명합니다.

문자열 열 연결과 SHA256 해시 사용하기

고유 ID를 생성하는 가장 좋은 방법은 입력 데이터에서 문자열 열을 연결한 다음 연결된 문자열의 SHA256 해시를 생성하는 것입니다.

Pipeline Builder에서 이 방법으로 고유 ID를 생성하려면 Pipeline Builder 변환 경로 내에서 다음 단계를 수행하십시오:

  1. 데이터 세트에서 각 레코드를 고유하게 식별할 수 있는 문자열 열을 결정합니다.
  2. 선택한 문자열 열을 연결하여 각 레코드에 대한 단일 문자열을 형성합니다.
  3. "Hash sha256"을 사용하여 연결된 문자열의 SHA256 해시를 계산합니다. 결과적으로 얻어진 256비트 해시는 64자리 16진수 문자열로 표현될 수 있으며, 이는 각 레코드에 대한 고유 ID로 사용됩니다.

고정 id의 스크린샷

이 방법은 여러 가지 장점이 있습니다:

  • 일관성: 동일한 입력 데이터는 항상 동일한 고유 ID를 생성하므로, 데이터 파이프라인의 다양한 실행 간에 일관성을 보장합니다. 이로 인해 레코드 추적, 중복 식별 및 데이터 대조가 더 쉬워집니다. 특히 ID가 오브젝트의 기본 키로 사용되는 경우, 파이프라인을 다시 빌드하는 결과로 기본 키가 변경되지 않도록 하고 싶습니다. 또한, 어떤 시점에서 데이터를 다루는 사람이 ID가 안정적이라고 의존할 수 있는지 고려합니다.
  • 분산 생성: 고유 ID가 데이터 자체에서 파생되기 때문에 여러 프로세스가 동시에 고유 ID를 생성할 수 있으며, 동기화 또는 중앙 집중식 조정이 필요하지 않습니다. 이로 인해 분산 데이터 처리 환경에서 확장성과 성능이 향상됩니다.

문자열 열의 연결을 따른 SHA256 해시를 사용하면, 확장 가능하고, 안전하며, 일관성 있는 고유 ID를 생성할 수 있어 데이터 파이프라인 애플리케이션에 이상적인 선택이 됩니다.

단조 증가 ID의 단점

단조 증가 ID는 Pipeline Builder에서 지원되지 않지만 Spark와 익숙한 데이터 엔지니어들에 의해 자주 사용됩니다. 단조 증가 ID는 순차적으로 생성됩니다(예: 1, 2, 3 등). 이 접근 방식은 본질적으로 단순하지만 여러 가지 단점이 있습니다:

  • 빌드 간의 불일치: Spark에서 단조 증가 ID를 사용할 때 동일한 애플리케이션의 다양한 실행 사이에서 생성된 ID가 변경될 수 있습니다. 이는 Spark가 실행기에 작업을 할당하는 방식이 변경될 수 있기 때문입니다. 따라서 이러한 불일치로 인해 결과를 재현하거나 다른 실행을 비교하거나 점진적 업데이트를 수행하는 데 어려움이 있으며, ID 열에 대한 신뢰할 수 없는 선택이 됩니다. 온톨로지 오브젝트의 기본 키로 사용되는 경우, 이는 모든 빌드에서 전체 재색인을 강제합니다.
  • 상태에 대한 의존성: 단조 증가 ID를 생성하려면 행 간에 상태를 유지해야 합니다.

이러한 단점으로 인해 데이터 파이프라인 애플리케이션에서 고유 식별자를 생성하는 데 단조 증가 ID를 사용하는 것이 최선의 방법이 아닙니다. 대신 앞서 설명한 바와 같이 문자열 열의 연결을 따른 SHA256 해시를 사용하는 것이 좋습니다.

해시할 고유 열 세트가 없는 경우

빌드 또는 미리보기 간에 일관성이 없음을 유의하십시오. 고유한 열 세트를 식별할 수 없는 경우에만 이 방법을 사용해야 합니다.

데이터에서 고유한 행을 정의하는 열 세트가 없는 경우, 무작위 수의 해시를 사용하여 ID를 생성할 수 있습니다. 이렇게 ID를 생성하려면 Pipeline Builder 변환 경로 내에서 다음 단계를 수행하십시오:

  1. "Uniform random number"을 사용하여 무작위 수를 생성합니다.
  2. 열을 문자열로 변환합니다.
  3. "Hash sha256"을 사용하여 해당 열을 해시합니다.

무작위 id의 스크린샷