DB板自治・質問・雑談スレ
レス数が1000を超えています。これ以上書き込みはできません。
初心者ですが
項目数が可変のツリー構造をデータベース化するのに定石はありますか?
階層ごとにテーブル作って親のid持たせるくらいしか思い付きません… 今までレンタルサーバまかせでDB用意してもらってたので、
ルート権限ありで自分でセットアップして使うのは始めてなのですが、
接続にあたって、レンタルサーバのように、ユーザ作って認証をちゃんと通したほうがいいのでしょうか?
管理者でパスワード認証なしの場合便利だなあと思ったのですが、
好き勝手に新しいデータベース作れるのがなんか気持ち悪く思えて・・・
それ以外にもセキュリティ高めるためにも用意した方がいいのかなと思ってます。
どうしたらいいでしょう? DBを含んだシステム(仮想環境、Dockerを想定するが場合によっては物理で組む)を検討しているのですが、
ちょっと用件が特殊なので、DBの選定あたりから考えないとならないため、お知恵を拝借したいです。
・特定期間の間、Twitterの特定キーワードを含むツイートを保存し続けるのが目的です。
(期間終了後に分析を行います。基本的に収集と分析は同時には実行しません(今のところ))。
・想定最大流量は3000件/1時間で、24MiB/1時間(実測からの推定)。24時間稼働で期間は最大で半年。
よって13,000,000件、100GiB〜(想定外のマージンを含めて)150GiB、データが保存されます。
(想定している保存先はHDD。)
・保存データは生のJSON。バイナリ等は含みません。ただし、常に同一のデータ構造ではないです。
(ツイートにURL含んでいたり、画像含んでいたりするとその情報が入るため)
ぶっちゃけ、テキストマイニングのためのデータ収集システムです。一つ一つは個人の自作鯖で
可能な範囲なのですが、最終的なデータ量だけが個人の範疇を超えているため、相談したいです。
上述の規模の収集が出来、事後の分析が現実的な時間内に可能であること(1日程度なら我慢)
という条件でDBを選ぶとしたら、何を選ぶべきでしょうか?
最初MongoDBを考えていたのですが、調べるとあまりよろしくない系の情報も耳にするようになり、
こちらの方面に耳を向けてなかったこともあって、最新の状況に明るくない状態です。
このような目的に最適なDBは何になるでしょうか? >>958
項目名を縦で持ったらいいんじゃないかな
想像してるのと違ったらごめん
>>959
普通は認証ファイル作っていわゆるパブリックキー方式だと思うよ mongoとmysqlは用途が違いますか?
mongoはキャッシュのような使い方をしてる人が多いようですが、
ちょっと大げさながらmysqlでもそれは可能だし、
逆にmysqlでやるようなことも、面倒ですがmongoでも可能ですよね?
用途分けて両方導入する人は多いんでしょうか? この板でSQLソース書こうとするとエラーで弾かれてしまう
以前はこんなことなかった
中継している?クラウドかなにかでチェックして弾いているように見える
そうなると運営に要望出しても対応は難しいのかな? http://ideone.com
こういうとこに貼り付ければいいよ neo4jについて聞きたいことあったけどnosqlのスレって全然ないんだねえ 初心者過ぎる質問で申し訳ないんですが、今会社で年間せいぜい150件程度発生する特殊な取引があって、
それをアクセスでDB化して使ってるんですが、処理の内容は支払う金額に決まった率を掛けて数字を出したり、
支払い日の翌月の特定の日を自動で表示させるだけです
この程度の動きならエクセルじゃダメなんですかね
ご教示ください、、 >>968
データを溜め込み過ぎてて一個一個の動作がフリーズしまくるんですよ、、 正規形の質問なんですけど
リレーションスキーマ内に関数従属性が全くない場合は分解しなくてもボイスコッド正規形になるんですか? 形式の異なる複数のファイル、
もしくは、複数のレコードセットに対して、
SQLを実行する方法はないでしょうか?
方法がわからないので、
一度、Excelのシートに取り込んだり、
全部同じフォルダにCSV出力してから、SQLを使うという、
間抜けなことをやっているのですが。 >>972
複数のレコードセットを参照するだけなら、UNIONで統合できないの? >>974
それがわからないんです。
[出来る]
@ Select * From Excelシート1, Excelシート2
A Select * From CSVファイル1, CSVファイル2
[出来ない](やり方がわからない)
@ Select * From Excelシート, CSVファイル
A Excelシートからレコードセット1を作成
CSVファイルからレコードセット2を作成
↓
Select * From レコードセット1, レコードセット2
[現在の妥協案]
CSVファイルをExcelに取り込む
↓
Select * From Excelシート1, Excelシート2(CSVから取り込んだ) >>975
EXCELシート1とEXCELシート2は、DBに取り込んだ際にテーブル構造は同じなの? >>976
違います。
Unionするわけじゃなくて、
WhereかOuter Joinするつもりなので。 すみません、最初からUnion前提じゃない事を書くべきでした。 >>978
シート1とシート2を取り込んだ際のテーブル構造を書いてみてくれん? 普通にこんな感じで、繋げるつもりなんですが。
シート1 注文コード, 商品コード, 数量, 単価, 注文日, 備考
┌────┘
シート2 商品コード, 商品名, 工場コード, 工場名 >>980
それなら普通にinner joinで繋がるんじゃね? >>981
Select * From レコードセット1 Inner Join レコードセット2 がですか?
それとも、
Select * From Excelシート Inner Join CSVファイル がですか?
後者だと、接続文字列に、複数のソースを入れるのがわからないです。 >>982
レコードセットに直してからね
ADOでアクセスしようとしたら、.mdbにしないといけないけど、シート(またはCSV)からレコードセットへの変換はどうやってるの?手動でインポート? >>983
レコードセットへの変換は、ExcelのVBAでADOを使います。
↓この変換は大丈夫 ↓この変換がわかりません
CSV → レコードセット -──┬─→ レコードセット
Excel → レコードセット ──┘ >>984
レコードセットに変換するんじゃなくて、一時的にテーブルを作った方がいいんじゃね?
CSVからインポートしてテーブル1を作る→EXCELシートをインポートしてテーブル2を作る→テーブル1と2を結合するクエリを作る ADOXを使ってMDBファイルを作って、その中にリンクテーブルを作る >>985
>>986
テーブルってメモリ上に作れますか?
一旦何かに書き込むしかないなら、シートがありますが・・。
mdbの方が、シートより速いとか? MariaDBにしてもMongoにしても導入も設定もめんどくさい
検索にキー指定は問題ないがバリュー指定だと
プログラム側でどうにかしないといけないから効率は悪いけど
なんか最近jsonでいいやって横着してる レコード件数1億件、同時アクセス500、秒間クエリ発行数1万、
これってまだ規模としては小規模と捉えていいですか? >>992
レス遅くなりましたが、どうもありがとうございました。
スケーラビリティとかよくわからないのですが、
そろそろなんか対策しないとまずいかなと考え始めてましたが、
小規模ならまだこのまま放置しても大丈夫ですかね。
板復帰(OK!:Gather .dat file OK:moving DAT 196 -> 176:Get subject.txt OK:Check subject.txt 196 -> 195:Overwrite OK)2.07, 1.56, 1.36
age subject:195 dat:176 rebuild OK! 誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
5L3IHVLJET このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 5597日 20時間 33分 1秒 レス数が1000を超えています。これ以上書き込みはできません。