Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
DynamoDBには以下の単語が登場します。 パーティションキー ソートキー プライマリキー ローカルセカンダリインデックス グローバルセカンダリインデックス これらのキー・インデックスについて改めて整理してみました。 まず「パーティション」「データの読み書きを行うAPIの種類」について整理します。その後、キーの種類について整理します。 パーティション DynamoDBのデータは複数のパーティションに分散して保存されます。このときデータがどのパーティションに保存されるかは パーティションキー を元に決定されます。 また ソートキー が設定されている場合、データはパーティション内でソートキーを元に並べ替えられて物理的に近くに配置されます。 例として、AnimalType(パーティションキー)とName(ソートキー)で構成されるPetsテーブルのデータは以下のように分散して保存されます。 (図
きっかけ 先日、とあるサーバーレスアプリを作っていた際、DynamoDBについて下記のツイートをしました。 ここに来て、DynamoDBの構成を変えなきゃいけない可能性が。てかプライマリキー、完全一致検索しかできないの?— Masaki Suzuki@フリーランスクラウドエンジニア (@makky12) 2020年2月4日 そうしたら、下記の突っ込みリプを頂きました。 プライマリーキーではなくパーティションキーなのです このキーの値によってデータが配置されるノードが決まります。同一ノード内ではある程度検索ができる(レンジキーやローカルインデックスではソートや絞り込みができる)わけですねー ホットキーがタブーなのも特定のノードに処理が偏るからですね というか確かに、DynamoDBのキーの扱いについて、認識がイマイチあいまいだなあ...と思う部分があったので、この機会にちょっと調べてみました
ここでは、Node.js 用の AWS SDK ver.2 を使って Amazon DynamoDB を操作する方法を説明します。 TypeScript の基本的な環境構築 は終わっているものとします。 SDK ver.3 を使う方法はこちらの記事 を参照してください。 基本的には ver.3 の使用が推奨されていますが、AWS の Lambda 実行環境は現時点(2021年5月)でも ver.2 がインストールされていたりするので、ver.2 の需要はまだあると思います。 Dynamo DB 用の SDK (ver.2) をインストールするAWS SDK version 2 で DynamoDB を扱うには、次のように AWS SDK パッケージ全体をインストールする必要があります(version 3 では DynamoDB サービスなどのパッケージを個別にインストールできます)。
Node.js で AWSを操作する環境を作る(Mac) の続きです。 Node.jsからDynamoDBのオペレーションを試してみます。 00. 準備 Node.js で AWSを操作する環境を作る(Mac) が終わっている前提です。 各ファイルでは下記のような共通の処理が入っていますが、記述を省略しています。 var AWS = require('aws-sdk'); var php = require('phpjs'); var dynamodb = new AWS.DynamoDB({region: 'ap-northeast-1'}); ※ phpjs は完全に趣味なのでスルーしてだいじょうぶです。php.var_dump()、php.print_r() は console.log() の代用としています。 01. list-tables (テーブル一覧) プログラム: var
はじめに RDBMSを使っていると、allとかで全件取得出来て特に気にする必要がないのですが、DynamoDBでは1MBまでのデータ量の件数のみしか取得が出来ないので、知っていないとあれ全件取得出来ていない...みたいなことになり私のように痛い目にあってしまうので、自分への戒めの意味も込めて残しておきます。 情報ソース:DynamoDB でのスキャンの使用 環境 Nodejs 実装 const AWS = require('aws-sdk'); const DynamoDB = new AWS.DynamoDB.DocumentClient({region: "ap-northeast-1"}); const tableName = 'hoges'; module.exports.hello = async (event, context) => { try { // scan用のパラメー
実装方法 今回は転置インデックスに関する説明は省きます。概念を説明するよりも、具体的な実装方法を紹介したほうが早いからです。 というわけで、以下のアーキテクチャ図にしたがって、Lambda関数とDynamoDBのテーブルを作成していきます。 DynamoDBのテーブル作成 AWSのマネージメントコンソールから以下のテーブルを作成していきます。 設定はすべてデフォルトにしています。 社員情報テーブル (Partition key: id, Sort key: なし) 転置インデックステーブル (Partition key: key, Sort key: employeeId) 転置インデックステーブルのインデックス (Partition key: employeeId, Sort key: なし) 社員情報テーブルの作成 転置インデックステーブルの作成 転置インデックステーブルのインデックス
AWS SDKを利用してDynamoDBを操作する方法について確認します。「テーブル作成・削除」「アイテムの挿入・取得・更新・削除」について取り上げます。 const AWS = require('aws-sdk') AWS.config.loadFromPath('./config.json') const dynamoDB = new AWS.DynamoDB() const params = { TableName: 'users', AttributeDefinitions: [ { AttributeName: 'user_id', AttributeType: 'N' }, // number { AttributeName: 'created_at', AttributeType: 'S' }, // string { AttributeName: 'post_id', At
Node.jsで書いたAWS LambdaからDynamoDBに対してクエリでデータを抽出する方法です。 久しぶりにNode.jsとDynamoDBに触ったらすっかり忘れていたので将来の自分のためにメモ。 DyanamoDB テーブル: test_table プライマリパーティションキー: deviceid プライマリソートキー: timestamp データ: test_timestamp, data1 var AWS = require('aws-sdk'), documentClient = new AWS.DynamoDB.DocumentClient(); exports.handler = function(event, context) { var device_id = "zoe6120"; var start_date = "2019-01-01"; var end_dat
Bluemixのドキュメント更新の遅さに辟易して浮気してます。 んで、AWSでNode.js使ってあれこれしようとしてる訳ですが・・・ ローカルでDynamoDBを動かしてて、まずテーブル作成だなとこんなコード書いてみた。 const AWS = require('aws-sdk'); AWS.config.update({ region: 'ap-eastwest-1', endpoint: 'http://localhost:8000' }); const db = new AWS.DynamoDB(); const params = { TableName: 'Users', KeySchema: [ { AttributeName: 'email', KeyType: 'HASH' }, { AttributeName: 'name', KeyType: 'RANGE' }, ],
Amazon DynamoDBを使用した開発を行う際に、cliやコンソールからAWS上にテーブル作って開発・テストをしてもいいのですが、コスト💸がかかってしまいます。 そこで、DynamoDB Localを使用することで、コストをかけず開発・テストができます。 想定する読者 これからDynamoDB Localを使用してみたい人🙋♂️ 間違いなど不備な点がありましたらコメントしてもらえると助かります。 🙇🏻♂️ よろしくお願いします。 前提条件 Docker🐳を使用する環境が整っていること ... Docker Desktop | Docker 動作環境 macOS(10.14.2) Node.js(v8.10) aws-cli(1.16.88) DynamoDB LocalをDockerで起動 amazon/dynamodb-localに載っているコマンドを実行します。 $
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く