팬아웃 접근 방식을 사용하여 여러 Google Cloud 리전에서 데이터 계보 링크를 가져옵니다. Data Lineage API를 사용하여 사용 가능한 모든 리전에서 계보 데이터를 검색하고 집계합니다.
클라이언트 측 팬아웃을 사용해야 하는 이유
클라이언트 측 팬아웃 접근 방식은 데이터 애셋이 여러 위치에 분산되어 있고 계보의 통합 뷰가 필요한 경우에 유용합니다.
자세한 내용은 멀티 리전 계보 검색 정보를 참고하세요.
단계별 의사 코드
이 절차는 각 리전의 projects.locations.searchLinks 엔드포인트에 병렬 요청을 합니다. 결과를 수집하고, 지역 간 페이지로 나누기를 처리하고, 찾은 링크를 집계합니다. 후속 호출에서 일관된 페이지로 나누기를 보장하려면 regionalPageToken를 관리하세요. 이는 연결할 수 없는 지역을 고려한 것입니다.
다음 의사코드는 Data Lineage API를 통해 사용 가능한 모든 리전에서 데이터 계보 링크를 가져오는 데 사용할 수 있는 절차를 간략히 보여줍니다.
- 다음과 같이 입력을 설정합니다.
linksToFetch= 5(모든 리전에서 가져올 링크 수)regionalPageToken= ""(페이지로 나누기에 사용한 마지막으로 수신된 리전 페이지 토큰)
- 다음 항목을 생성합니다.
regions는 팬아웃할 모든 리전의 목록입니다.unreachable은 연결할 수 없는 리전의 목록입니다.foundLinks는 발견된 링크의 빈 목록입니다.nextPageToken및nextRegionalPageToken은 빈 변수입니다.lastRegion은 빈 변수입니다.lastRegionLinksCount는 빈 변수입니다.
regions를 알파벳순으로 정렬합니다.regionalPageToken을 파싱합니다.- 비어 있으면 5단계로 이동합니다.
- 비어 있지 않으면 다음 안내를 따릅니다.
- 첫 번째 점에서 분할하여
regionalPageToken을 두 세그먼트로 파싱합니다. - 파싱된
regionalPageToken에서 (알파벳순으로 정렬된) 첫 번째 세그먼트 다음의 세그먼트만 가져와 리전을 필터링합니다. - 두 번째 세그먼트를 따로 저장하여 모든 projects.locations.searchLinks 호출에 사용합니다.
- 첫 번째 점에서 분할하여
regions목록의 각 리전에서 projects.locations.searchLinks를 동시에 호출합니다.- 모든 요청이 완료될 때까지 기다립니다.
- 성공한 응답을 필터링하고 실패한 리전 이름을
unreachable목록에 저장합니다. - 각 응답(알파벳순으로 정렬된 첫 번째 리전부터 시작)마다 다음 안내를 따릅니다.
- 비어 있지 않은 페이지 토큰과 함께 링크가 반환되지 않은 경우에는 다음 안내를 따릅니다.
lastRegion에 리전 이름을 저장합니다.- 수신한 pageToken을
nextPageToken에 저장합니다. - 나머지 응답은 무시합니다.
- 그 외의 경우에는 다음 안내를 따릅니다.
lastRegion에 리전 이름을 저장합니다.- 수신한 링크를
foundLinks에 저장합니다(최대linksToFetch). - 수신한 pageToken을
nextPageToken에 저장합니다. - 응답에서 가져온 링크의 수를
lastRegionLinksCount에 저장합니다. foundLinks가linksToFetch보다 작다면 다음 안내를 따릅니다.- 알파벳순으로 정렬된 다음 수신 응답으로 의사코드를 계속 진행합니다.
foundLinks가linksToFetch와 같다면 다음 안내를 따릅니다.- 동일한 리전의 projects.locations.searchLinks 엔드포인트에 대한 다른 요청을 만들지만
pageSize매개변수를lastRegionLinksCount값으로 설정합니다. - 수신한 pageToken을
nextPageToken에 저장합니다. - 9단계로 이동합니다.
- 동일한 리전의 projects.locations.searchLinks 엔드포인트에 대한 다른 요청을 만들지만
- 비어 있지 않은 페이지 토큰과 함께 링크가 반환되지 않은 경우에는 다음 안내를 따릅니다.
nextPageToken앞에lastRegion(예:[region].[receivedNextPageToken])을 추가하여 연속 호출에서 페이지로 나누기를 처리하는nextRegionalPageToken을 만듭니다.
다음 단계
멀티 리전 계보 검색에 대해 자세히 알아보세요.
서버 측 자동화를 사용하여 다중 리전 계보를 검색하는 방법을 알아봅니다.
데이터 계보에 대해 자세히 알아보세요.