Skip to main content

개요

DAS API 메소드는 호출당 최대 1,000개의 레코드를 반환합니다. 더 많은 데이터를 가져오기 위해 페이지네이션을 사용하여 여러 번 호출하고 데이터를 페이지별로 탐색합니다. Helius는 페이지 기반 및 키셋 페이지네이션 두 가지 메커니즘을 지원합니다. 페이지 기반 페이지네이션은 시작하기에 가장 간단한 방법입니다. 키셋 페이지네이션은 대규모(50만 개 이상) 데이터 세트를 효율적으로 쿼리하기 위한 고급 사용자용입니다.

사용 시기

  • 페이지 기반 — 정적 뷰, 대시보드 및 대부분의 일상 쿼리. 쉽고 직관적입니다.
  • 키셋(커서 또는 범위) — 페이지 기반 탐색이 느려지는 대규모 데이터 세트(전체 컬렉션, 50만 개 이상 자산).
  • 병렬 키셋 — 주소 범위를 분할하여 전체 컬렉션을 스캔하는 가장 빠른 옵션입니다.

정렬 옵션

결과를 sortBy 필드를 사용하여 다른 필드로 정렬할 수 있습니다: 정렬을 비활성화하면 가장 빠른 결과를 얻을 수 있지만 데이터가 정렬되지 않기 때문에 페이지네이션 시 일관되지 않은 결과를 얻을 수 있습니다.

페이지 기반 페이지네이션

페이지 번호와 페이지당 항목 수를 지정합니다. 다음 페이지로 이동하려면 페이지 번호를 증가시킵니다. 대부분의 사용 사례에 대해 쉽고 직관적이며 빠릅니다.
페이지를 사용하는 경우 데이터베이스는 다음 페이지에 도달할 때까지 모든 항목을 탐색해야 합니다. 예를 들어, 페이지 크기가 1,000인 페이지 100을 요청하면 데이터베이스는 데이터를 반환하기 전에 첫 100만 레코드를 탐색해야 합니다. 이러한 이유로 대규모 데이터 세트에는 페이지 기반 페이지네이션이 권장되지 않으며, 키셋 페이지네이션이 더욱 적합합니다.

키셋 페이지네이션

데이터 세트를 필터링하는 조건을 제공하여 페이지를 정의합니다. 예를 들어, “ID가 X보다 크고 Y보다 작은 모든 자산을 가져옵니다.” 각 호출 시 X 또는 Y를 수정하여 전체 데이터 세트를 탐색합니다. 키셋 페이지네이션에는 두 가지 방법이 있습니다:
  1. 커서 기반 — 사용이 쉬우나 유연성이 적습니다.
  2. 범위 기반 — 더 복잡하지만 매우 유연합니다.
키셋 페이지네이션은 id으로 정렬할 때만 지원됩니다.

커서 기반

페이지네이션 매개변수 없이 DAS 쿼리를 수행하면 커서를 반환합니다. 이전에 중단한 지점에서 계속하기 위해 커서를 DAS API에 다시 전달합니다.
현재 작성 시점에서는 커서가 응답의 마지막 자산 ID이지만, 커서 설계는 유연하며 모든 문자열을 지원할 수 있습니다.

범위 기반

범위 전반을 쿼리하려면 before 및/또는 after를 지정하십시오. 쿼리는 본질적으로 “X 이후이지만 Y 이전의 모든 자산을 가져옵니다.” 각 호출 시 before 또는 after 매개변수를 업데이트하여 데이터 세트를 탐색합니다.

키셋으로 병렬 쿼리(고급)

대규모 데이터 세트(예: 전체 압축 NFT 컬렉션)를 쿼리하는 고급 사용자는 성능을 위해 키셋 기반 페이지네이션을 사용해야 합니다. 다음 예제는 Solana 주소 범위를 분할하고 before/after 매개변수를 사용하여 병렬로 쿼리하는 방법을 보여줍니다. 이 방법은 빠르고 효율적이며 안전합니다.
아래 예제에서는 Tensorian 컬렉션(약 10k 레코드)을 전체 스캔합니다. Solana 주소 공간을 8개의 범위로 분할하고 동시에 해당 범위를 스캔합니다. 이는 다른 방법보다 훨씬 빠릅니다.

다음 단계

자산 검색

소유자, 컬렉션 및 tokenType으로 자산을 필터링합니다.

자산 가져오기(NFTs)

NFT, 컬렉션, 에디션 및 증명을 검색합니다.

DAS API 참조

모든 DAS 메소드에 대한 전체 스키마.