アーカイブ

‘データベース’ カテゴリーのアーカイブ

DOA、RDB と Key Valueストア(KVS)について

2009 年 7 月 30 日 tdtsh Comments off

前々回前回、に引き続き、Key Valueストア(KVS)ネタ。

データの整合性(Consistency)を重視するRDB、データの可用性(Availability)とデータの分散化(Partition-tolerance)を重視するKVS。

要件によって向き不向きがある訳だけど、toCのWEBサービスを考える時、全部バランスよく、しかもコストを抑えつつ実現したい訳です。

RDBマンセーなわたしでさえ、KVSに軍配を上げざるを得ないんですね。

もちろん、SalesForceみたいなアプローチも悪くない。
でも、DOA的な観点から考えると、アレは邪道なんでしょうねぇ。

Key Valueストアがリレーショナルデータベースを駆逐するシナリオの妥当性:Azureの鼓動:ITmedia オルタナティブ・ブログ
概ね同意ですが、少なくともWEBアプリケーション、特に toC に関して言えば、Key Valueストアは破壊的イノベーションだと思います。

前回も参考にしたこの記事が、的を射た説明をしてくれている。

もう1つの、DBのかたち、分散Key-Valueストアとは (1/3) – @IT

RDBで負荷分散させようとすると……
例えばMySQLを使う場合、1テーブルのレコード件数が数百万~数千万件を超えるような規模になると、1台のDBサーバだけでは実用的なパフォーマンスが達成しにくくなります。そこで一般には、以下のような対策によってRDBのスケーラビリティを引き上げる努力が必要となります。
・RDBサーバのスケールアップ(大型サーバへの載せ替え)
・DBのレプリケーションやシャード(パーティション)分割によるクラスタ構築
・分散キャッシュ(Oracle RACやmemcachedなど)によるクラスタ構築
経験者ならばお分かりいただけるとおり、このどれもが結果的に「高コスト」となるソリューションです。

要するに、そういうことなんすよ・・・
私たちRDBMS屋は、ココが腕の見せ所のひとつであり、飯の種な訳だったんですが、GAE上のBigTableでいともあっさり解決できてしまう予感。

DOA+コンソーシアム(ディー・オー・エー・プラス コンソーシアム)
ひっそりと活動を続けるDOAコンソーシアムでは、Key Valueストアをどう捕らえているんだろう。

株式会社マジカジャパンの羽生章洋が書いてるブログ:端境期を感じるシステム開発 – livedoor Blog(ブログ)

Bigtableの使い方教えます – ひがやすを blog

夏椰の湧水-Spring from Kaya- … 正規化について(基本)
正規化を判りやすく解説してある。
1NF~BCNFまで。

夏椰の湧水-Spring from Kaya- … 正規化について(オプション)
4NF~5CNFまで。

Oracleで、exp、impでデータ移動、複製

2009 年 7 月 22 日 tdtsh Comments off

一連のRDBMSインスタンス間のデータ移動関係シリーズ

今回はOracle版メモ。

移行元サーバからデータをエクスポート

exp "db_username/db_password@from_server file=dump.dmp tables=(table_a, table_b)"

移行先サーバへデータをインポート

imp "db_username/db_password@distination file=dump.dmp tables=(table_a, table_b)"
カテゴリー: oracle, データベース タグ:

pgdumpでPostgreSQLサーバ間でデータ移動、複製

2009 年 7 月 17 日 tdtsh Comments off

これも良く忘れるのでメモ。
PostgreSQLのダンプって、DDLとDMLをまんま吐いてくれるから便利。
リモートからやる場合は、PostgreSQLのバージョンをあわしておく必要がある。

移行先サーバにログイン

ssh username@destination_server

移行元サーバからデータをダンプ

pg_dump -U db_username -h fromserver -d db_name -p db_password -f ./dump.sql -v

ダンプしたデータをリストア

psql -U db_username -h localhost -d db_name < ./dump.sql
カテゴリー: データベース タグ:

LOADでCSVファイルをMySQLデータベースにインポートする

2009 年 7 月 16 日 tdtsh Comments off

前回、PostgreSQLのCOPYコマンドの方がInsertより早い、のMySQL版。

SET NAMES utf8;
LOAD DATA INFILE '/path/to/file/data.csv'
INTO TABLE tablename FIELDS TERMINATED BY ',';

参考サイト

http://dev.mysql.com/doc/refman/4.1/ja/mysqlimport.html

http://dev.mysql.com/doc/refman/4.1/ja/load-data.html

カテゴリー: データベース タグ:

PostgreSQLのCOPYコマンド

2009 年 7 月 15 日 tdtsh Comments off

大量のデータをInsertするより、COPYコマンドを使うほうが早い。

COPY tablename (col1,col2,col3) FROM ‘/path/to/file/data.csv’ with NULL as ” CSV;

参考サイト
http://www.postgresql.jp/document/pg833doc/html/sql-copy.html

http://blog.goo.ne.jp/whitil/e/e5c21be12ab5e98a53116c048220bdbf

http://www.thinkit.co.jp/cert/compare/1/5/3.htm

http://okwave.jp/qa777662.html

http://blog.mufu.jp/2008/08/postgresqlcopycsv.html

http://yoshinba.qp.land.to/index.php?PostgreSQL

カテゴリー: データベース タグ: