少しIT関連に詳しい人なら不思議に思うことがありませんか?
データーベースに対して同時に書き込むことがあってもなぜデーターは正しく処理されるのか。あるいは同時に書き込もうとした場合に書き込みトランザクションはなぜエラーにならないのだろうかと。
OracleやMS SQL Serverなどのデーターベース管理システムでは、ある処理がデーターベースに書き込み中に他の処理がデーターベースに書き込もうとすると、排他制御と呼ばれる仕組みが働いて書き込めないようになっています。
このことにより、同時に複数のトランザクションがデーターベースの更新を行うことでデーターが壊れてしまったりすることを防いでいます。
その仕組みは大まかに以下の概要となります。
- 特定のトランザクションがデーターベースに書き込みに行く
- データーベースはそのトランザクションにのみアクセスを許可。他のトランザクションからはアクセス出来ないロック状態となります。
- 最初のトランザクション処理が実行されます。
- 処理中のトランザクション処理が完了すれば、他のトランザクションのアクセスが可能となります。
-
基本的にデータベース管理システムでは上記の様な方法で、複数トランザクションからの同時実行を制御しています。
コマツが「ドローン」と呼ぶ無人ヘリを工事現場で使うそうだ。
空撮技術というのはずいぶん前からあったように思う。
しかし、工事現場に無人へリというのは見たことがない。
どんな仕事をこなすのだろうと読んでみると、測量に使うというのが興味深かった。
少し調べると、空撮画像から3Dに換えたりするらしい。
三角点や道路標識を対空標識として、基準とすると、緯度、経度、標高などがわかる。
一瞬、なぜ地形が分かるのだろうと思って考えてみた。
もし写真に写っているひとつの物体の長さと距離が正確にわかっているとしたら、同じ距離にある物体の大きさはわかるだろう。
さらに距離をつめると、その向こうにある物体の大きさもわかる。
単純に、このように移動して長さや距離を測ることができるだろう。
デジタルに誤差はあるのか、と思ったが、あるらしい。
だから、対空標識を使うという。
一方、鉱山の現場では自動走行システムが使われているということだ。
ドローンは配達もするらしい。
Amazonが挑戦していると聞いたが、既に中国では試験的に始まってるそうだ。
また農業の補助もしているとの事。広大な農場にはサポートとしてドローンを導入してるようだ。
今後、測量にしろ採掘にしろどんどん無人化して行き着く先はどうなるのだろうか。
人の需要を上手く減らさずに上手く共存してくれれば良いのですが。
今年の7月17日、ハウステンボスに「変なホテル」というのが登場します。ロボットが接客するホテルで世界初となる見込みです。
フロントといえば普通は人間が接客しますが、この「変なホテル」では受付ロボットが行います。さらに掃除も人間がしますが、ここでは清掃ロボットが行います。
チェックイン/チェックアウトはセルフサービスとなり、部屋の鍵代わりに顔認証システムが導入されます。
また、部屋の中にある設備を手元のタブレットで操作するというスタイルになるようです。
最新のIT技術がふんだんに盛り込まれていて、現況で可能な限りの機能を詰め込んでいるホテル宿泊となるとの事。
ハウステンボス内にあるということから、主な観光はハウステンボスでしょう。洋風建築を眺めつつ一風変わった接客も受けられると思います。
宿泊料金はオークションとなるため、おそらくかなり高額で落札されるのではないかと予想されます。
スタートは7000円からで朝食付きで9000円から。
2015年1月27日の米国株式相場が大幅下落。Microsoftの株価も9.3%程ダウンしたそうです。
Microsoftやビルゲイツ会長と言えば、IT業界での成功者の象徴として有名です。しかし最近はパソコンからスマートフォンやタブレットへの移行が進んでいます。勿論、ビジネス利用は圧倒的にパソコンのシェアが高いでしょう。この大幅下落は、失望売りだと言われています。昨年のWindows XPのサービス終了後、Windows7やWindows8の売り上げが思うほど伸びていないそうです。また、ドル高により海外販売があまり利益に貢献していないようです。
Windowsは、スマホのOS開発やインターネット検索BING等、事業の多角化を進めていますが、未だにパソコンのofficeソフトやOSに頼っているのも事実です。
一日で約10%近く株価が下落するのは極めて稀であり、一日で時価総額4.1兆円が失われたそうです。そのスケールの大きさはさすがアメリカのIT企業に思います。Appleは現在のところ好調ですが、数年先はMicrosoftのようにならないとは言い切れません。
PostgreSQLの大きな特徴として追記型のアーキテクチャであることです。このことによりデータが更新される度に使われないタプル(tuple)が蓄積されていきます。
PostgreSQLに必要な保守作業は、この使用されることのないタブルを解放し利用できる領域にすることが必須となっています。
この作業を行うのがVACUUMコマンドです。
VACUUMを実行するとデータベースのパフォーマンスを向上させることができます。
VACUUMには、VACUUM FULLと標準VACUUMがあります。
VACUUM FULLは、システムへの負荷が大きく作業に長時間を要します。
膨大な量のデータ削除を行った時や利用可能なディスク容量が急迫した等の緊急時以外は、VACUUM FULLは行うべきではありません。
標準VACUUMを定期的に行っていいれば、VACUUM FULLを実行する必要性が発生する頻度を低減させることができます。
また、なんとなくVACUUMを行うのではなく、pgAdminなどを使用してデッドタプル(不要領域)を確認してうえで実行することが重要です。
PostgreSQL8.1以降では、autovacuumが実装されていますのでメンテナンスにかかる負荷も低減されています。
PostgreSQL独自のSQLコマンドとしてCOPYコマンドが実装されています。
これはサーバ上にあるCSVファイルからある表に、一括してデータを流し込むこ操作を行うことの出来るコマンドとなっています。
コマンドは通常のSQLと同様にpsql上から発行できます。
表の全列にデータを流し込む場合には、以下の書式になります。
|
% COPY 表名 FROM 'CSVファイルのフルパス' WITH CSV; |
insert分などと同様に、表の一部の列にだけデータを流し込むことも可能です。
その場合のSQLの記述方法は以下となります。
|
% COPY 表名(列名1,列名2,…) FROM 'CSVファイルのフルパス' WITH CSV; |
また、サーバ側にCSVファイルがない場合、psqlの標準入力からCSV形式でデータを入力することも可能です。その場合には以下の書式となります。
|
% COPY 表名 FROM STDIN WITH CSV; % COPY 表名(列名1,列名2,…) FROM STDIN WITH CSV; |
PostgreSQLCOPYコマンドはデータ一括登録時時に便利なので覚えておくのも良いかもしれません。
PostgreSQLのバージョンは「9.1.14」の様に2つのピリオドに区切られた3つの数字で表記されています。
左から2つは、メジャーバージョンを表し、最後の1つはマイナーバージョンを表しています。
例えば、9.1.14なら、メジャーバージョンが9.1、マイナーバージョンが14となります。
メジャーバージョンアップは1年毎、マイナーバージョンアップは、年に3回~5回程度実施されます。
このバージョンをアップすることを維持管理と呼び、2015年1月27日現在で維持管理の対象となっているのは、9.4.0、9.3.5、9.2.9、9.1.14、9.0.18となります。
左端が8の8.4.22以前のものは、ダウンロードができます(available)が、維持管理の対象外(No longer supported)であり、これ以降はバージョンのアップは行われません。
維持管理対象外のバージョンは、「EOL’d releases」とも呼ばれています。EOLは「End-of-life」の略です。
マイナーバージョンアップは、バイナリ変更だけで対応できますが、メジャーバージョンアップでは、データファイルの移行の必要があるので、メジャーアップデート作業はアップデート計画に沿って、慎重に(シュミュレーション・予行演習など)行うことが大切となります。
「駑馬十駕」を信念に IT系情報を中心に調べた事をコツコツ綴っています。