質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
NoSQL

NoSQL(not only SQL)は、リレーショナルデータベース管理システムとは異なるデータベースシステムを指す言葉です。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

2回答

2637閲覧

データベースの更新頻度や方法などの構成についてです。

Hayato1201

総合スコア220

NoSQL

NoSQL(not only SQL)は、リレーショナルデータベース管理システムとは異なるデータベースシステムを指す言葉です。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2018/10/31 06:19

編集2018/10/31 06:21

現在iOSのアプリを開発していて、ローカルで取ったデータをawsのdynamodbに一定の期間で保存する様にしようと思っています。ローカルにも保存されているデータをデータベースにも入れてこちらで管理できるようにする、といった形です。
データは結構な頻度で発生するので、その度にデータベースと通信をしていると頻度が高すぎるきがします。そのため一定期間過ぎたらまとめてデータベースに送る、としたいです。
さらにまた一定の期間が経ったら送る、としたいのですがその際には以前ストアしたデータも変更されている可能性があるので前回アップロードされたデータは全て消して今回の物をアップデートする、としたいです。
この様な方法は何か問題あるでしょうか?その一度に送るデータは何百レコードとかになる場合もあります。毎回全部消して入れ直すというのは無駄にも感じますが、データが更新される度にすでにデータベースに保存されている値を参照してアップデートするのも毎回やっていたら高頻度になってしまう気がします。

このようにバックエンドを持つアプリを作るのが初めてなため、知識があまり無いのですが、この様な構成はどうなのでしょう?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t_obara

2018/11/01 12:10

サーバにあるデータにアクセス(参照)するのはどのような時ですか?保存だけ?
Hayato1201

2018/11/01 12:50

ユーザの端末からのアクセスということでは、サーバー側のデータをバックアップとして、データの引き継ぎ等ができる様にしたいと思っています。
Hayato1201

2018/11/01 12:51

なのでサーバのデータを取ってくるのはそういった際です。
guest

回答2

0

ベストアンサー

DynamoDBは必要なスループットをプロビジョニングできますので書き込み/読み込み可能なキャパシティをプロビジョニングしてあげれば問題ありません。

あとは、消してから書くのではなく、書いてから問題なければ古いのを消せば安心です。

頻度が高くても、それが要件として必要であれば致し方ないことだと思います。

投稿2018/11/04 09:49

moonphase

総合スコア6621

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

私も設計をほとんど行ったことが無いため、諸先輩方のご指摘を受けることを覚悟で申し上げますが、

「更新されたレコードを参照して変更を行う」
というやり方で問題ないと思います。

さらに、今回はDynamoDB(NoSQL)なので、
「クエリチューニングの方法が限定される」
と思います。(MongoDBを少し触った程度なので、自信がありませんが……)

まずはAWSにテスト用の環境を作るか、手元のマシンの中でDynamoDBを構築して検証するのが良いと思います。
昨今はコンテナ仮想環境技術のおかげで、ローカルマシン内で軽快に動くサーバーを構築することも簡単になっていると思いますし。

自分で構築したローカル開発環境のDynamoDBに読み書きを行う限りでは、AWSの利用料金がかかることはないので、

  • 一度全部消して書き直しを行う方法
  • 変更箇所だけを書き換える方法

の2つを、ローカル開発環境で自分で体感してみると良いと思います。

以上、少しズレた回答かもしれませんが、お役に立てば幸いです。

投稿2018/10/31 06:49

manzyun

総合スコア2244

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問