メインコンテンツまでスキップ

DynamoDB

Squid は Amazon DynamoDB データベースに接続し、Squid アプリケーションのデータソースとして利用できます。

DynamoDB は AWS の serverless NoSQL key-value database です。Squid を使用すると、Squid Client SDK を通じて DynamoDB tables を query し、AI agents が DynamoDB data を使用して質問に回答できるようになります。

注記

DynamoDB connector は現在、read operations をサポートしています。Queries と document lookups は標準の Squid query API を通じて動作しますが、inserts、updates、deletes、native queries はまだサポートされていません。

DynamoDB database を Squid に接続するには、次の手順を完了してください。

  1. Squid Console を開き、DynamoDB で使用するアプリケーションを選択します。
  2. Connectors tab をクリックし、次に Available connectors をクリックします。
  3. DynamoDB connector を選択します。
  4. 次の構成情報を入力します。
  • Connector ID - 簡潔で、connector を識別しやすい ID を選択します。これは後で変更できません。
  • Region - DynamoDB tables の AWS region。例: us-east-1
  • Access Key ID - tables へのアクセス権を持つ IAM user の access key ID。
  • Secret Access Key - 対応する secret access key。非公開に保つため、Squid Secrets に保存します。
  • Endpoint URL - 任意。DynamoDB Local 用の http://localhost:9001 などの custom endpoint。
  • Tables to Process - 任意。schema discovery に含める tables の comma-separated list。regex pattern を指定するには forward slashes を使用します(例: /^temp_.*/)。すべての tables を含めるには空のままにします。

必要な IAM permissions

IAM user には、公開したい tables に対して次の permissions が必要です。

  • dynamodb:ListTables
  • dynamodb:DescribeTable
  • dynamodb:Scan
  • dynamodb:GetItem

connector は read-only のため、write permissions は不要です。

schema の検出

connector を追加した後、Schema tab を使用して tables を検出します。Squid は各 table の key schema を読み取り、最大 100 items を sample して、残りの attributes とその types を推定します。保存する前に、生成された schema を調整できます。

data の query

Client SDK から DynamoDB tables を query する方法は、他の Squid collection と同じで、connector ID を渡します。

Client code
const users = await squid
.collection<User>('users', 'YOUR_DYNAMODB_CONNECTOR_ID')
.query()
.eq('status', 'active')
.snapshot();

注意すべき DynamoDB 固有の動作がいくつかあります。

  • Queries は server-side filters を使用した DynamoDB scans として実行されるため、secondary indexes は必要なく、使用されません。大きな tables では、広範な queries は遅くなり、read capacity を消費する可能性があります。
  • limit が設定されていない場合、queries は最大 1000 items を返します。
  • Results は sort されません。DynamoDB は scan order で items を返します。
  • ID による documents の lookup は、simple(partition-key-only)primary key を持つ tables でサポートされています。composite(partition + sort)key を持つ tables は、document ID で query できません。

database の保護

default では security rules が必須であり、production environment では、それらなしで connector へのアクセスを許可しないことが重要です。database data の保護について詳しくは、security rules documentation を参照してください。

Datatype mapping

次の table は、DynamoDB と Squid の datatype mapping を示しています。

DynamoDB TypeSquid Type
S (string)string
N (number)number
B (binary)string (base64)
BOOLboolean
L (list)array
M (map)map
SS, NS, BS (sets)array
NULLnull

Squid で data を操作する方法については、Client SDK documentation を参照してください。