タグ

dynamodbに関するlike_futsalのブックマーク (27)

  • DynamoDB×Go連載#2 AWS SDKによるDynamoDBの基本操作 | フューチャー技術ブログ

    こんにちは。TIG DXユニット 1の武田です。 はじめにDynamoDB×Go連載企画第2弾の記事となります。 DynamoDB×Go連載#1 GoでDynamoDBでおなじみのguregu/dynamoを利用する では guregu/dynamo を利用したDynamoDBの基操作をご紹介しました。 記事ではサードパーティ製のライブラリを利用せずaws-sdkを素で利用した場合のDynamoDBの基操作について見ていきましょう。 なお、公式のドキュメントは下記になりますので、より詳細な情報はこちらを参照してください。 https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/welcome.html 環境情報 Go: 1.13.8 aws-sdk-go: v1.29.10 検証環境の準備第1回の記事同様 DynamoDB

    DynamoDB×Go連載#2 AWS SDKによるDynamoDBの基本操作 | フューチャー技術ブログ
  • DynamoDBローカルをDockerコンテナとして動かす - Qiita

    1.概要 DynamoDBに、開発・テスト用途のDynamoDBローカルと呼ばれるものがあります。これはDynamoDBをローカルマシンのアプリケーションとして稼働させ、各種SDKにて接続・テーブル操作を実装できます。 DynamoDBローカルは、公式でJavaアプリケーションとして配布されていますが、Dockerイメージでも配布されているので、このイメージを使ってDockerコンテナとしてDynamoDBローカルを稼働させたいと思います。 ポイントはAWSアカウントを登録・所有していなくてもDynamoDBを使ったアプリケーションを開発できるということだと思います。Lambda/api gatewayAWS SAM Localで開発・テスト可能になっているので、色々試しやすくなっているのかなと。 参考:主に番環境で利用するDynamoDBAmazon DynamoDB(ウェブサービ

    DynamoDBローカルをDockerコンテナとして動かす - Qiita
  • DynamoDB×Go連載#1 GoでDynamoDBでおなじみのguregu/dynamoを利用する | フューチャー技術ブログ

    はじめにこんにちは、村田です。Go言語でWebサーバを実装していた際にDynamoDBを扱うライブラリとしてGregさんの https://github.com/guregu/dynamo を使っていました(2年ほど稼働していますが、特に問題も出ていません) 当時Go初心者だった私は「go dynamo」とすぐさまGoogle先生に問い合わせ、「guregu/dynamoがオススメ」とのエントリーを多数発見しました。オブジェクトの取り回しが隠蔽化されていてとにかく実装が簡単だと記事にも書いてありましたし、私自身も実際そう感じました。 すでにタイトルからお察しかと思いますが、記事は連載第1回目です。時代の移ろいに合わせてDynamoDB×Go界隈の事情も刻一刻と変化しています。まずは私の利用していたSDK(guregu/dynamo)についてから連載をスタートします。 SDK(gureg

    DynamoDB×Go連載#1 GoでDynamoDBでおなじみのguregu/dynamoを利用する | フューチャー技術ブログ
  • 20181205 AWS Black Belt Online Seminar Amazon Athena (20190510update)

    This document contains a presentation on Amazon Athena given by Makoto Shimura on December 5, 2018. The presentation covers an overview of Amazon Athena, including how it allows querying data directly from Amazon S3 without loading it into a database first. It also discusses using the AWS Glue Data Catalog for metadata and shows examples of creating tables and running queries on data stored in ORC

    20181205 AWS Black Belt Online Seminar Amazon Athena (20190510update)
  • ざっくりAWS - DynamoDBの料金を日本円で計算

    ストレージ DynamoDBで使用するストレージの容量をGB単位で入力してください。 読み込み単位 4KBまでの強い整合性のある読み込み1回につき1単位、トランザクション読み込み1回につき2単位、結果整合性のある読み込み1回につき 0.5単位の読み込みになります。 書き込み単位 1KBまでの書き込み1回につき1単位、トランザクション書き込み1回につき2単位になります。 RCU 読み込みキャパシティユニット(RCU)を入力してください。 キャパシティユニットという言葉に馴染みがありませんが、最大4KBの項目に対して強い整合性のある読み込みを1秒あたり1回(結果的に整合性のある読み込みについては2回)行うことで1RCUを消費します。例えば、2KBの項目に対して1秒あたり100回の強い整合性のある読み込みを行う場合は、100RCUが必要になります。 キャパシティユニットや整合性についての詳しい話

    ざっくりAWS - DynamoDBの料金を日本円で計算
  • AWS Black Belt Online Seminar 2017 Amazon DynamoDB

    AWS Black Belt Online Seminar 2017 Amazon DynamoDB Read less

    AWS Black Belt Online Seminar 2017 Amazon DynamoDB
  • ローカル・セカンダリ・インデックスの射影範囲について - Qiita

    AWSのDynamoDBで使用されるLGS(ローカル・セカンダリ・インデックス)について纏めます。 1.ローカル・セカンダリ・インデックスとは DynamoDBでは項目を識別するためのキーとしてパーティションキーのみが使用されるものとパーティションキーとソートキーを組み合わせた複合キーを使用するものの2種類があります。 LSIは複合キーを使用しているテーブルにのみ設定可能なインデックスです。 複合キーが設定されているテーブルでは暗黙的にこの複合キーで検索を行います。(この検索結果は0件or1件の一意なものになります。) しかし、例えばとある条件に一致する項目を複数抽出したいなどといったほかの検索の要望が出てくることもあると思います。 その時に有効なのがLSIです。 暗黙的なインデックスは「プライマリキー+ソートキー」で構成されていますが、これとは別に「プライマリキー+指定した属性」でインデ

    ローカル・セカンダリ・インデックスの射影範囲について - Qiita
  • Amazon DynamoDB まとめ - Qiita

    最近触り始めたので調べたことをまとめてみる・・・!(長くなった!) DynamoDBとは ・AWSの提供する完全マネージドNoSQL DBサービス →KVS的に使うもよし →インデックスを張って軽いクエリも可能 →最近ではJSONドキュメントもサポートされ、ドキュメントストアとしても使えるとのこと ※まだ自分で試してないのでなんともですが、JSONドキュメントの中を検索とかできるのかな… ・ストレージ無限 ・パフォーマンスも無限 →ただしある一定以上に設定する場合はAmazon側に上限緩和申請が必要 →とはいえ項目サイズを1KBとした場合、10000req/sec以上までは申請不要なので通常は十分 ・ユーザが気にするのはスループット値の設定のみ →ReadもWriteも設定値を増やすのは1日何回でも可能だが、減らすのは1日4回までなので注意 →ReadとWriteの設定値減を同時に1リクエ

    Amazon DynamoDB まとめ - Qiita
    like_futsal
    like_futsal 2019/05/11
    分かりやすい
  • DynamoDBのパーティション分割問題について|ハンズラボエンジニアブログ|ハンズラボ株式会社

    こんにちは、井上です。 DynamoDBを使用していて、スループットは十分なはずなのに、書き込み/読み込みエラーが発生する、というケースはありませんでしょうか。 ハンズラボでは以前からこの問題に悩まされており、原因が分からないまま必要以上に高いスループットを設定したりしてお茶をにごしていたのですが、サポートやSAの方に相談したところ、パーティションの分割による問題であることが分かりました。 このパーティション問題は結構ハマりどころだと思うので共有しておきます。 背景 昨年、お客様の購入履歴(約2億3,000万レコード)などのデータをDynamoDBへ移行しました。 その際、店舗の閉店時間から、翌日の開店時間までの間にデータ移行を行う必要があったため、書き込みスループットを最大限に上げ、並列処理にて一気にデータを投入しました。 初期インポートは無事成功し、スループットを通常オペレーション上必

    DynamoDBのパーティション分割問題について|ハンズラボエンジニアブログ|ハンズラボ株式会社
  • 【AWS公式ドキュメントを噛み砕く】DynamoDBベストプラクティス - Qiita

    はじめに 【AWS公式ドキュメントを噛み砕く】DynamoDBとは?(概要編)で、概要レベルの話を抑えたので、ベストプラクティスみたいな具体的な話はこっちに書く。 結構抜粋してます。 そして、学習がてらのアウトプットなので、正しい情報はAWSの公式ドキュメント見てくださいね。 (そして誤りあれば指摘してもらえると嬉しいです) NoSQL 設計 これ リレーショナルデータ設計と NoSQL の相違点 DynamoDB では、最も一般的で重要なクエリをできるだけ速く、安価にするために、具体的にスキーマを設計します。 DynamoDBは検索時のクエリの状態(非正規化)で、データ構造を設計せよってことだな。 NoSQL 設計の 2 つの重要な概念 DynamoDB の場合は対照的に、答えが必要な質問が分かるまで、スキーマの設計を開始しないでください。 DynamoDB アプリケーションではできるだ

    【AWS公式ドキュメントを噛み砕く】DynamoDBベストプラクティス - Qiita
  • DynamoDB セカンダリインデックス - Qiita

    DynamoDBに関する基的な内容をまとめてみたものです。DynamoDBに関する、Web上にすでにある良識な解説コンテンツをまとめたサイトの抜粋です。 セカンダリインデックス DynamoDBがサポートする2種類のセカンダリインデックス テーブル内のデータに効率的にアクセスするため、DynamoDB はPrimary Key属性用にインデックスを作成して維持します。このため、アプリケーションはPrimary Keyの値を指定することで、迅速にデータを取得する ことができます。 しかし多くのアプリケーションでは、Primary Key以外の属性を使って、データに効率的にアクセスできるようにするセカンダリ(または代 替)キーを 1 つ以上設定することで、メリットが得られることがあります。これに対応するために、1 つのテーブルで 1 つ以上のセカンダリインデックスを作成して、それらのインデッ

    DynamoDB セカンダリインデックス - Qiita
  • Coverts a Python Boto3 DynamoDB item to a standard dictionary

  • DynamoDB x Python / Decimal を登録する - Qiita

    JSON と Python のマッピング JSON と Python の dict は以下のようにマッピングされている。 JSON Python

    DynamoDB x Python / Decimal を登録する - Qiita
  • DynamoDB に boto3 で接続 (ハッシュキー、レンジキーを使う) - Qiita

    # #aws dynamodb list-tables --endpoint-url http://localhost:8000 # aws dynamodb put-item --table-name tbl_iot --item \ '{ "id_device": { "S": "ras0001" }, "timestamp": { "S": "20180122082400" }, "temperature": { "N": "21.15" }, "humidity": { "N": "51.62" } }' \ --endpoint-url http://localhost:8000 # # aws dynamodb put-item --table-name tbl_iot --item \ '{ "id_device": { "S": "ras0002" }, "timestam

    DynamoDB に boto3 で接続 (ハッシュキー、レンジキーを使う) - Qiita
  • AWS LambdaからDynamoDBをQueryする - 銀の弾丸

    photo credit: Violet electric lightning versus turquoise storm - 09072012 via photopin (license) JavaScript(Node.js)で記述した AWS Lambda から AWS-SDK を使って DynamoDBのテーブルをQueryするサンプルコードをご紹介。 ところでAWSAPIのリファレンスって検索しにくいですよねえ。 Lambdaがいろんな言語に対応しているため、REST APIと各言語向けの説明が別れていてチュートリアルも検索結果にたくさん出てきます。 ※ 記事ではDynamoDBのQueryするときのパラメータを説明します。 関連する記事として、検索条件を入力してQueryパラメータを生成するWebアプリは以下になります。合わせて参照してみてください。 takamints.

    AWS LambdaからDynamoDBをQueryする - 銀の弾丸
  • DynamoDB の Scan でテーブルのデータを漏れなく取得する為のメモ - ようへいの日々精進XP

    これは これはやらかしの記録である 結果セットに 1MB 制限がある 実装例 環境 ダメなやつ 1MB 以上の結果を取得するやつ 1MB 以上の結果を取得するやつ(2) ということで 教訓 自分を殴りたい これは qiita.com 初老丸 Advent Calendar 2017 6 日目の記事になる予定です. これはやらかしの記録である 一年前に作った DynamoDB テーブルの Scan した結果を解析処理して REST API で返すだけのシンプルなシステム. ところが, 最近になって返却する値がとても不安定(意図した結果が返ってくる時と返ってこない時がある)になってしまい調査したところ... Scan した結果に全てのレコードが含まれていないことを確認... 勢いでドキュメントを読むと... 結果セットに 1MB 制限がある docs.aws.amazon.com Dynamo

    DynamoDB の Scan でテーブルのデータを漏れなく取得する為のメモ - ようへいの日々精進XP
  • Lambda(python3.6)を使って大量のデータをDynamoDBに追加するときはbatch_writerが便利 | DevelopersIO

    どうも!大阪オフィスの西村祐二です。 Lambdaを使ってファイルに記載された大量のデータをDynamoDBに追加する機会がありました。 実行時間の制限もあるため、効率よく追加できないかなと思っていろいろ探していたら batch_writer()を使えば プロセスのスピードアップとサービスに対する書き込み要求数の削減が可能とのこと だったので試してみました。 http://boto3.readthedocs.io/en/latest/guide/dynamodb.html#batch-writing 細かなところではありますが備忘録も兼ねて、ブログとして残しておこうと思います。 便利だと思ったところ 一度にputできる数の制限は気にしなくていい 一度にputできる数は最大25と制限があります。 http://docs.aws.amazon.com/ja_jp/amazondynamodb/

    Lambda(python3.6)を使って大量のデータをDynamoDBに追加するときはbatch_writerが便利 | DevelopersIO
  • ここにハマった!DynamoDB - Technology Topics by Brains

    はじめまして。Impulse開発チームの木村です。 今回は、Amazon DynamoDBを、 Apache Cassandraと同じように扱おうとした際に、ハマった点とその解決策を紹介します。 なお、DynamoDBの操作には、AWS SDK for JavaScript (Node.js)を使用しています。 テーブル定義編 テーブルをまとめる機能がない 複合primary keyに使える属性は、最大で2つ 日付・時刻型がない NS/SS/BS型は、配列ではない AttributeDefinitionsにkey属性以外を入れてはならない データ取得編 Range属性のみのkey条件指定はできない SQL(ライクな)文が使えない Expressionに、数値や文字列を直接書けない Range属性に対して2つの条件を指定できない Expressionには、含めてはならない予約語がある 一度に

    ここにハマった!DynamoDB - Technology Topics by Brains
  • DynamoDBにおけるテーブル設計 - Qiita

    インフラ構成はこんな感じ。アプリケーションサーバが集計を行います。 Phase 4: Hot hash問題 データが3,000万超えた辺りからアクセスが集中するとCloudWatchからアラートが飛ぶように。。 The level of configured provisioned throughput for one or more global secondary indexes of the table was exceeded. Consider increasing your provisioning level for the under-provisioned global secondary indexes with the UpdateTable API 気付いたらいつの間にかデータサイズが10GB超。プロビジョニングされたスループットを超えた書き込みが発生していました。

    DynamoDBにおけるテーブル設計 - Qiita
  • DynamoDB ベストプラクティス - Qiita

    今年は始めて、re:Inventに参加してきたので、その際に見た「Amazon DynamoDB: Data Modeling and Scaling Best Practices」というセッションの内容を共有したいと思います。 内容をだいぶ端折ってるので、間違っている場合には、びしばしツッコミいただければと思います。 では、まいります。 1. CacheはCashなり なんでDynamoDBを使うかといえば、やっぱり、ポチポチっと設定するだけで簡単に読み込み、書き込み性能を上げたり、下げたりできるっていうのが大きなポイントかと思います。 ただ、設定した性能も、データのアクセスパターンによっては思い通りの性能が出ないことがあります。 例えば、ReadCapacityを 100から5,000 に上げたとします。そうると、DynamoDBは、「オレ1人では捌き切れない」と思って、パーティション

    DynamoDB ベストプラクティス - Qiita