問題タブ [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.
javascript - JavaScript で Amazon dynamoDB を使用する
jQuery と Ajax 呼び出しを使用して JavaScript 経由で Amazon DynamoDB と対話しようとしましたが、失敗しました。2日間の調査の後、私はそれが不可能かもしれないと考え始めています. Java、PHP、および .Net で利用できる SDK があるようですが、JavaScript はまだありません。
Amazon は、このリンクで dynamo にコマンドを送信する方法を説明しています。
PHP sdk と node.js (https://github.com/xiepeng/dynamoDB) でそれを行うことができましたが、通常の javascript ajax 呼び出しまたは xmlHttpRequest 呼び出しでは運がありません。
有効な aws 署名、シークレット ID、およびセッション トークンを取得できたので、それらをヘッダーにハードコーディングしました。
これが私のコードです:
これを実行すると、404 Not found エラーが発生し、メソッドが「OPTIONS」として表示されます (POST または GET ではなく)。
java - Java の batchGetItem API のエラー
クエリを実行しているエンティティにはHashKey
& RangeKey
(数値) があります。使用batchGetItem
すると、次のエラーが発生します。
AWS エラー コード: ValidationException、AWS エラー メッセージ: 1 つ以上のパラメータ値が無効でした: ロケーションとスキーマの間で属性タイプが一致しません
スキーマ:
表: 日次
ハッシュキー: CustId (文字列)
範囲キー: 日付 (数字)
データ:
CustId : VisioNerdy
日付 : 1329071400000
コード:
手がかりはありますか?
mongodb - NoSQL(MongoDB / DynamoDB)スキーマ
Webサイトから一連の製品をスクレイピングし、それらをDBに保存しています。現在、私はMySQLを使用しており、次の2つのテーブルがあります。
このスキーマは、過去にリストされた製品のスナップショットを取得できることを意味します。
NoSQLへの移行を検討しているのは、(i)さまざまなサイトからさまざまなフィールドを取得することが多く、(ii)データ量が年間約500万から1,000万の製品になるためです。スキーマを構造化する2つの方法を見ることができます
オプション1:「埋め込みリスト」
オプション2:「セカンダリインデックス」
オプション1はセカンダリインデックスが許可されているMongoDBのようなもので機能するのに対し、オプション2はMongoDBまたはDynamoDBのいずれかで機能すると思います。(メンテナンスのオーバーヘッドがゼロのクラウドでホストされるものが必要なため、これら2つを検討しています)。
私はこれらのアプローチで正しい方向に進んでいますか?どちらが最適ですか?私はnosqlにまったく慣れていないので、アドバイスをいただければ幸いです。
amazon-dynamodb - DynamoDB でクエリまたはスキャンを使用して結果を注文することは可能ですか?
DynamoDB でクエリまたはスキャン API を使用して結果を注文することはできますか?
DynamoDB にORDER BY 'field'
SQL クエリのようなものがあるかどうかを知る必要がありますか?
ありがとう。
nosql - dynamoDBテーブルを構造化して、テーブル内の*アイテムに対してASCまたはDESCの順序付きページ付けを有効にします
時間/日付でORDER_BYし、テーブル内のすべてのアイテムをページングしたいと思います。スキャンはすべてをページ分割するように設計されているようですが、「ASC/DESC」と同等のものはないようです。クエリにはScanIndexForwardがありますが、特定の主キーが必要です。(SELECTする方法はありません*?)
この質問の最初のコメントに基づいて、これを実現する唯一の方法は、共通の主キー(!?)を使用し、それに基づいて範囲キーに焦点を当ててクエリを実行することだと思います。これは本当にそれが機能することになっている方法ですか?一意の主キーに基づいて個々のアイテムをクエリする場合は、ミラーリングされた属性を使用して完全に別個のテーブルを作成する必要があります。
私のNoSQLの初心者を許してください。私はMySQLとSimpleDBに手を出しているだけのフロントエンド開発者です。
nosql - トレンド投稿のクエリを可能にするためにDynamoDBデータベースを構築するにはどうすればよいですか?
次の式を使用して「トレンド」投稿を計算することを計画しています。
p =ユーザーからの投票(ポイント)。t =送信からの時間(時間単位)。
DynamoDB(Amazonのnosqlデータベースサービス)を使用してトレンドの投稿をクエリできるように、データベーステーブルを構造化する方法についてのアドバイスを探しています。
DynamoDBには、テーブル内のアイテムごとに主キーが必要です。主キーは、ハッシュ属性(文字列または数値)と範囲属性(文字列または数値)の2つの部分で構成できます。ハッシュ属性はアイテムごとに一意である必要があり、必須です。範囲属性はオプションですが、DynamoDBを使用すると、範囲属性にソートされた範囲インデックスが作成されます。
私が考えていた構造は次のとおりです。
TableName:ユーザー
TableName:投稿
TableName:カテゴリ
TableName:カウンター
したがって、次のテーブル設定で行うリクエストの種類の例を次に示します(例:user_id = 100)。
User Action 1:ユーザーの処置1:
ユーザーが新しい投稿を作成し、2つのカテゴリ(野球、サッカー)の投稿にタグを付けます
クエリ(1):
counter_name='post_id'とincrement+1の現在の値を確認し、新しいpost_idを使用します
クエリ(2):投稿テーブルに以下を挿入します。
クエリ(3):
以下をCategoriesテーブルに挿入します。
クエリ(4):
以下をCategoriesテーブルに挿入します。
最終目標は、次のタイプのクエリを実行できるようにすることです
。1.トレンドの投稿を
クエリする2.特定のカテゴリ
の投稿をクエリする3.ポイント値が最も高い投稿をクエリする
トレンドの投稿のクエリを実行できるように、テーブルをどのように構成できるかを誰かが知っていますか?それとも、これはDynamoDBに切り替えることで実行できる機能を放棄したものですか?
python - Boto を使用して dynamoDB のキーを期限切れにするにはどうすればよいですか?
私は redis から dynamoDB に移行しようとしていますが、すべてがうまく機能しています! 私がまだ把握していない唯一のことは、キーの有効期限です。現在、次のように、主キーが 1 つあり、範囲キーがないデータ設定があります。
私が考えていたのは、タイムスタンプが特定の値よりも小さい場所をデータベースでスキャンし、明示的に削除することでした。ただし、これは非常に非効率的で、理由もなく途方もない数の読み取り/書き込みユニットを使い果たしてしまいます。その上、有効期限はスキャンを実行したときにのみ発生するため、おそらく蓄積される可能性があります.
それで、誰かがこの問題の良い解決策を見つけましたか?
java - Amazon dynamo db の使用法を示す Java コード サンプル
Amazon Dynamo DB の使用法を示す Java コード サンプルをご存知ですか? 推奨されるベスト プラクティスがあれば、それも非常に役立ちます。
perl - EC2 で MongoDB をスケーリングするか、DynamoDB に切り替えるだけですか?
現在、MongoDB を使用して単一のサーバーで Web サイトを実行しています。私のサーバーには、2 つのコンポーネント (1) 1 時間ごとに実行され、MongoDB インスタンスにデータを追加するクローラー (2) クローラー インデックスから読み取り、ユーザー パーソナライゼーション DB に書き込む Web サイトがあります。自動スケーリングのために Amazon EC2 に移行しています。これにより、ウェブサーバーが自動スケーリングできるようになり、ウェブトラフィックの増加に合わせてサーバーの数を増やすことができます。クローラーの自動スケーリングは必要ありません。これは、MongoDB の使用方法に課題をもたらします。最適化するための最良のオプションは何だろうと思っています
- 私のコードへの最小限の変更 (コードは perl です)
- DB 内のデータを失うことを心配することなく、Web サーバーをシームレスに追加/削除する機能
- 低価格
短期的には、DB は 2 GB 未満になるため、すべてのマシンのメモリに確実に収まります。ユーザーのパーソナライズ DB は再構築できないため、これを持つことがより重要になりますが、インデックスは簡単に再構築できます。現在の MongoDB クロール インデックスには、約 15 の異なる列をキーとする約 10 万のエントリがあります。私はオンラインの出会い系サイト (さまざまな方法で検索可能) で作業しているため、これは速度を重視して構築されています。
いくつかのオプションを考えることができます
- ユーザーのパーソナライズ ストアには SimpleDB を使用し、インデックスには MongoDB を使用します。すべてのマシンでインデックスを複製しますが、MongoDB の複製についてはよくわかりません。
- すべてをSimpleDBに移動
- すべてを DynamoDB に移動
SimpleDB や DynamoDB についてはよくわかりません。記事に基づくと、DynamoDB が自然な選択であるように思われますが、すべての列、インデックスなどを使用できるかどうかにかかわらず、適切な perl サポートについてはわかりません。経験がある人やアドバイスはありますか?
mongodb - DynamoDB または SimpleDB で MongoDB のユースケースを置き換えることはできますか?
DynamoDB または SimpleDB が私の MongoDB ユースケースを置き換えることができるかどうか疑問に思っていましたか? これがMongoDBの使い方です
- 15,000 エントリ、1 時間あたり 200 エントリ追加
- (ensureIndex) を使用してインデックスが作成された 15 列
- 列の半分は整数で、残りはテキスト フィールドです (基本的に、一意の値は 10 個以下です)。
- 私は 1 時間あたり約 10,000 の DB 読み取りを実行していますが、現在 MongoDB を使用すると非常に高速です。オンラインの出会い系サイトです。したがって、平均的な Mongo クエリは、2 つの列 (例: 年齢と身長) で範囲検索を実行し、約 4 つの列 (例: 民族は A、B、または C... 宗教は A、B、またはロ C)。
- limit と skip を非常に頻繁に使用しています (たとえば、最初の 40 エントリ、次の 40 エントリなどを取得します)。
- 私はperlを使って読み書きします