問題タブ [amazon-dynamodb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-web-services - 比較演算子を使用した DynamoDB クエリ
Amazon AWS DynamoDB の質問です。
CONTAINS、IN、BETWEEN などの RangeKeyCondition と ComparisonOperators を使用する例はありますか。複合 RangeKey (連結および区切り) に基づいてデータを取得しようとしています。たとえば、書籍テーブルの日付 + 著者 + キーワード。この場合、HashValue が「book」であると仮定します (book、dvd、video、link などの可能性があります)。キーワード「magic」を含むすべての本、または著者「John Doe」のすべての本を選択したいと考えています。サンプル レコード/アイテムは次のようになります。
ハッシュ------範囲------------------------------------------ ----------------------- 属性1 ... 属性x
book-----2012-1-20~john doe~adventure~magic~travel----------------description ... some stuff
条件演算子 IN または CONTAINS を使用しようとすると、次のエラーが発生します: object(CFSimpleXML)20 public '__type' => string 'com.amazon.coral.validate#ValidationException' (length=45) public 'message' = > 文字列 '試行された条件付き制約はインデックス可能な操作ではありません'
これらの ComparisonOperators を使用した例は見つかりませんでした。どんな助けでも大歓迎です。
ありがとう。
python - boto を使用して DynamoDB テーブル内のすべての項目をループするにはどうすればよいですか?
DynamoDB テーブルにクエリを実行し、すべてのアイテムを取得して、boto を使用してそれらをループしたいと考えています。テーブル内のすべてを返すクエリまたはスキャンを構成するにはどうすればよいですか?
amazon-web-services - DynamoDBのUUID?
テーブルに新しいアイテムを追加するときに、DynamoDBに一意のIDを自動的に生成させることは可能ですか?
Java APIが@DynamoDBAutoGeneratedKeyに言及していることに気付いたので、これをPHPでも機能させる方法があると思います。
その場合、アプリケーションコードはこれらのIDを生成しますか、それともDynamoDB側で実行されますか?
amazon-dynamodb - DynamoDB の ItemSize
dynamoDB で項目のサイズを計算しようとしていますが、定義を理解できません。
私が見つけた定義:アイテムのサイズは、その属性名と値の長さの合計です(バイナリとUTF-8の長さ)。そのため、属性名を短くすると役立ちます。
データベースに数値を入力すると、たとえば 1 のように int のサイズになるということですか? 平行?ダブル?100 または 1000000 と同じ量のスペースが必要ですか、それとも対応するバイナリのサイズだけが必要ですか?
そして、文字列の計算は何ですか?
それを計算する方法を知っている人はいますか?
ありがとうございました
php - PHPセッション用のDynamoDB
現在、自動スケーリングの負荷分散されたアプリサーバーの配列にPHPセッションファイルストレージ用のNASを使用しています。
これをより堅牢なソリューションに置き換えることに関心があり、AmazonのDynamoDBは面白そうです。ここに1つの考えられる問題があり、ここに文書化されています。
http://thwartedefforts.org/2006/11/11/race-conditions-with-ajax-and-php-sessions/
DynamoDBはオブジェクトロックをサポートしていないと思います。あなたが考えることができる回避策はありますか?
PHPセッションに使用される他のNoSQLシステムの経験がある場合は、学習内容も同様である可能性があるため、気軽に参加してください。
前もって感謝します
amazon-web-services - Amazon DynamoDB はローカル データベースなしで使用できますか?
クラウドサービスについてまだ詳しくないので質問させてください。
AWS から DynamoDB を使用する場合、ローカルにインストールする必要がありますか? それとも、すべてサーバー側で処理されますか?
nosql - Amazon DynamoDB-拡張性とメリットがありますが、それは適切ですか
自分で作成したアプリケーションがあります。すべてがうまくいけば、大量のデータが生成される可能性があります。現在、MySQLデータベースを使用して情報を格納しており、クエリでINNER結合とLEFT結合を使用してデータをフィルタリングしています。とにかくdynamodbを試してみるつもりでしたが、次のデータ構造に適していると思われるのか、リレーショナルデータベースを使うべきなのかを聞いてみようと思いました。
たとえば、主キーとしてproject_idを持つプロジェクトテーブルがあるとします。これで、各「プロジェクト」に多数のユーザーを関連付けることができます。マネージャーAがログインすると、チームメンバーが持っているすべてのプロジェクトを確認したい場合があります。RDSモデルでは、これは次のように構成されている可能性があります。
これで、理論的にはdynamodbの同様の構造を維持できますが、user_idがuser_idのセットである場合は、最初に、user_idごとにproject_to_userからすべてのproject_idを選択する必要があります(多くの読み取り)。次に、返されたIDに基づいてすべてのプロジェクトを選択できます(コードを介して重複を削除する可能性があります)。または、project_to_userテーブルを破棄し、プロジェクトにuser_ids属性を設定して、そのテーブルでスキャンを実行できると思いました。スキャンがdynamodbを使用する最善の方法ではないことは承知していますが、これを行う最初の方法はとにかく大量の読み取りである可能性があるという顔によって、これを相殺できますか?
私のアプリには多くのテーブルがないため、Amazon dynamodbの候補として適していると理解していますが、リレーショナルモデルに固執する必要がありますか?
これは非常にオープンエンドに見えるかもしれませんが、DynamoDBが提供するスケールの見通しに興奮していますが、この種のものに最適かどうか疑問に思っています。ただし、リレーションシップモデルに固執すると、DB管理が将来的に大きな頭痛の種になることがわかります。私はすでにdynamodbモデルに合うようにDBを再設計しましたが、ジャンプすることを躊躇しているのはこれらの「JOIN」ポイントだけであり、人々が持つ可能性のある洞察に感謝します。
私はNoSQLに慣れるという点でMongoDBを少し遊んでいますが、私が理解しているように、Amazon DynamoDB(Amazonのプロ)よりもそのセットアップを管理する必要があります。
どうもありがとう
*編集* user_idクエリの検索は、project_idの検索と同じくらい多くなる可能性がありますが、各プロジェクトも個別に識別する必要があります。
ruby-on-rails - レールで Amazon Dynamo DB を使用するときにページネーションを実装する方法
Rails で amazon Dynamo DB を使用したいのですが、ページネーションを実装する方法が見つかりません。
AWS::Record::HashModel
ORMとして使用します。
この ORM は、次のような制限をサポートしています。
しかし、Dynamo DB で次の MySql クエリを実装する方法がわかりませんでした。
nosql - DynamoDB: Get All Items
I'm trying to retrieve all of the keys from a DynamoDB table in an optimized way. There are millions of keys.
In Cassandra I would probably create a single row with a column for every key which would eliminate to do a full table scan. DynamoDBs 64k limit per Item would seemingly preclude this option though.
Is there a quick way for me to get back all of the keys?
Thanks.
database - DynamoDBをどのようにクエリしますか?
私はAmazonのDynamoDBを見ています。これは、データベースサーバーの保守とスケーリングの面倒な作業をすべて取り除いているように見えるからです。私は現在MySQLを使用していますが、データベースの保守とスケーリングは完全な頭痛の種です。
ドキュメントを確認しましたが、データを簡単に取得できるようにデータを構造化する方法に頭を悩ませることに苦労しています。
私はNoSQLと非リレーショナルデータベースにまったく慣れていません。
Dynamoのドキュメントから、プライマリハッシュキーと、限られた数の比較演算子を使用したプライマリ範囲キーでのみテーブルをクエリできるようです。
または、全表スキャンを実行して、それにフィルターを適用することもできます。キャッチは、一度に1Mbしかスキャンしないため、X個の結果を見つけるためにスキャンを繰り返す必要がある可能性が高いということです。
これらの制限により、予測可能なパフォーマンスを提供できることはわかっていますが、データを取り出すのが非常に難しいようです。また、全表スキャンを実行することは、実際には非効率的であり、テーブルが大きくなるにつれて効率が低下するだけのようです。
たとえば、Flickrのクローンがあるとします。MyImagesテーブルは次のようになります。
- 画像ID(番号、プライマリハッシュキー)
- 追加された日付(番号、プライマリ範囲キー)
- ユーザーID(文字列)
- タグ(文字列セット)
- 等
したがって、クエリを使用すると、過去7日間のすべての画像を一覧表示し、結果をX個に制限するのが非常に簡単になります。
ただし、特定のユーザーのすべての画像を一覧表示する場合は、全表スキャンを実行し、ユーザー名でフィルター処理する必要があります。タグについても同じことが言えます。
また、一度にスキャンできるのは1Mbのみであるため、X個の画像を見つけるために複数のスキャンを実行する必要がある場合があります。また、X枚の画像で簡単に停止する方法もわかりません。30枚の画像を取得しようとしている場合、最初のスキャンで5枚、2回目のスキャンで40枚になる可能性があります。
私はこの権利を持っていますか?それは基本的にトレードオフですか?実質的にメンテナンスフリーで、非常に高速で予測可能なデータベースパフォーマンスが得られます。しかし、トレードオフは、結果を処理するためにはるかに多くのロジックを構築する必要があるということですか?
それとも私はここで完全にベースから外れていますか?