メインコンテンツへスキップ

概要

DAS API メソッドは 1 回の呼び出しで最大 1,000 レコードを返します。それ以上を取得するには、ページネーションを行います。これには複数回の呼び出しとデータのページをクロールすることが含まれます。Helius はページベースとキーセットページネーションの 2 つのメカニズムをサポートしています。 ページベースのページネーションは最も簡単に始められる方法です。キーセットページネーションは、大規模な(50万以上の)データセットを効率的にクエリするためのものです。

使用するタイミング

  • ページベース — 静的ビュー、ダッシュボード、ほとんどの日常のクエリに最適。簡単で直感的。
  • キーセット(カーソルまたはレンジ) — ページベースのクロールが遅くなる大規模データセット(全コレクション、50万以上の資産)。
  • 並列キーセット — アドレスレンジを分割して全コレクションをスキャンする最速のオプション。

ソートオプション

sortBy フィールドを使用して、異なるフィールドで結果をソートできます。 ソートを無効にすると最速の結果が得られますが、データは順序付けられていないため、ページネーション時に一貫性のない結果が得られる場合があります。

ページベースのページネーション

ページ番号とページごとのアイテム数を指定します。次のページに進むには、ページ番号をインクリメントします。これ はほとんどのユースケースに対して簡単で直感的、かつ迅速です。
ページを使用する場合、データベースは次のページに到達するまでのすべてのアイテムをクロールする必要があります。例えば、ページサイズが 1,000 のページ 100 が必要な場合、データベースは最初の 100 万レコードをトラバースしてからデータを返す必要があります。このため、ページベースのページネーションは大規模データセットには推奨されません。キーセットページネーションがその作業負荷に最適です。

キーセットページネーション

ページはデータセットをフィルタリングする条件を指定することで定義されます。例えば、「ID > X かつ ID < Y のすべての資産を取得する」といった具合です。各呼び出しで X または Y を変更することでデータセット全体をトラバースします。キーセットページネーションには次の 2 つの方法があります。
  1. カーソルベース — 使用が簡単ですが柔軟性が低い。
  2. レンジベース — より複雑ですが非常に柔軟。
キーセットページネーションは id でのソート時のみサポートされています。

カーソルベース

ページネーションパラメータなしの DAS クエリはカーソルを返します。カーソルを DAS API に渡して中断したところから続行します。
執筆時点では、カーソルはレスポンスの最後の資産 ID ですが、カーソルデザインは柔軟であり、任意の文字列をサポートできます。

レンジベース

レンジを指定してクエリするには、before および/または after を指定します。このクエリは本質的に「X より後、Y より前のすべての資産を取得する」というものです。各呼び出しで before または after パラメータを更新することでデータセットをトラバースします。

キーセットを使用した並列クエリ(上級者向け)

大規模データセット(例えば、圧縮された NFT コレクション全体)をクエリする上級者は、パフォーマンスのためにキーセットベースのページネーションを使用するべきです。次の例は、Solana アドレスレンジを分割し、before/after パラメータを使用して並列にクエリを行う方法を示しています。この方法は高速で効率的、安全です。
以下の例では、Tensorian コレクション全体(約 10,000 レコード)をスキャンしています。Solana アドレス空間を 8 つのレンジに分割し、それらを同時にスキャンします。これは他の方法よりもはるかに高速です。

次のステップ

資産を検索

所有者、コレクション、tokenType で資産をフィルタします。

資産 (NFT) を取得

NFT、コレクション、エディション、プルーフを取得します。

DAS API リファレンス

すべての DAS メソッドのフルスキーマ。