技術メモ

プログラミングとかWeb技術の個人用メモ。

PostgreSQL学習記録1

データベースクラスタ

PostgreSQLの扱うデータはすべて、データベースクラスタにある。

データベースクラスタの実体はファイルシステム上のひとつのディレクトリである。

 windows7にPostgreSQL9.6をインストールした際のデータベースクラスタはこんな感じ。

$PGDATA C:\Program Files\PostgreSQL\9.6\data

f:id:hiropon-python:20190305202913j:plain

 主だったものは以下の通り。

・data

 データベースのルートディレクト

 最初から3つのデータベース(templete0,templete1,postgres)が定義されている

・global

 システムカタログが格納されている

・pg_log

 ログファイルが格納されている

・pg_xlog

 WALファイルが格納されている

postgresql.conf

 各種パラメータの設定ファイル

・pg_hba.conf

 クライアントの認証方法を設定するファイル

 

データベースクラスタPostgreSQLサーバは1対1に対応する。

PostgreSQLサーバとは、データベースを管理するPostgreSQLのプロセス群(デーモンプロセス、バックエンドプロセス、バックグラウンドプロセスなど)、またはPostgreSQLのデーモン、サービスを意味する(物理的なサーバマシンの意味ではない)。

データベースクラスタPostgreSQLサーバの組はインスタンスという。

 

 

 

久々に覗いてみた

大学時代に開設したこの技術ブログ、結局2つしか技術的なネタ書けずに3年以上放置していました

 

今では某IT企業(?)でシステム開発・構築・保守の業務を細々とやってます

 

たまにこのブログのアクセス解析とか見ると、毎日1~9人程度のPVがあったりして、こんなんでも読んでくれる人がいるのだなと思ってほっこりしてました

shellscriptについてググって行き着いたのでしょうか。なんかしょうもない記事で申し訳ないです

 

社会人になって、腰を据えて勉強することが激減してしまっています

そして、あまりに知識が乏しい。。。

例:javaのsynchronizedの使い方をつい最近知った、DBの正規化とか座学で勉強するも忘れてる、3年前ぐらいに基本情報取ったけど今やって受かる気しない、など

 

このままじゃだめだー、ということで今日から少しずつ自分の知識整理を再開しようと思います

Shell Script の勉強 No.002 日付の入ったディレクトリをつくる

大量のデータを管理する場合、日付が無いと不便だ。


計算のシェルスクリプトを実行させて、outputファイルを計算を実行した日付入りディレクトリの中に放り込むようにしたのでそのメモ。


mkdir `date +%Y%m%d` && cd $_
mv ../output .

mkdir でカレントディレクトリに日付入ディレクトリを作る。
dateコマンドの標準出力を文字列に変換するため、バッククォーテーション「`」でくくっている。
%Y%m%dはdateコマンドのオプションで、フォーマットを指定できる。
この場合だと、今日の日付で「20150529」という文字列になる。
&&は一つ目のコマンドが正常終了した場合、二つ目のコマンドを実行する、という意味。

日付入りディレクトリをつくって、そのままそこをカレントディレクトリにしたかった。
$_はひとつ前のコマンドで使った引数をもってくることができる変数である。
ここでは、`date +%Y%m%d`に当たる。

Shell Script の勉強 No.001 リダイレクトで.txtファイルを.csvファイルに変換

自作シェル作って作業効率アップとかできたらかっこいいなー
ということでシェルスクリプトの知識を自分なりにまとめてみます。

こんなファイルがあったとする
ファイル名:hoge

1 2 3
4 5 6
7 8 9

このファイルのそれぞれの数字をいい感じにcsvファイルに変換する方法メモ。
まあ、Excelのテキストファイルウィザードでできるんですけど…

cat hoge | tr ' ' ',' > hoge.csv

catコマンドでhogeの中身をパイプラインで渡し、trコマンドで半角スペースを , に変換。
その出力をリダイレクトしてhoge.csvに流し込んでます。

一応そのcsvファイルの画像がこちら
f:id:hiropon-python:20150518230130p:plain

リダイレクトとは
シェル・スクリプト・リファレンス - 【 リダイレクトとは 】:ITpro

シェルは「キーボードから入力し,画面に出力する」ようになっている。こうした入力と出力の方法を変更する場合には,リダイレクトを使う。たとえば,入力をファイルから行い,出力は捨ててしまう(画面への表示もファイルへの保存もしない)ということが可能だ。

 リダイレクトには出力先を切り替える「>」,出力先のファイルに追加する「>>」,入力元を切り替える「<」,複数行の入力を行える「<<」がある。

モノは欲しくないけど、技術や知識は欲しい

最近、物欲がない。

以前はあのロードバイクが欲しい、ヘッドホンが欲しいとか思っていたけど、中古でいいやとか思うようになった。

 

というのも、モノに囲まれて安心するという生き方に疑問を持ち始めたからだ。

自分が本当に必要な物だけを身の回りに置いておけばいい。

 

持っている物で使用頻度が極端に少ないものが沢山ある。使用頻度が少ないならば、家に置いておかなくても借りればいいのである。特に、本やDVDはに家に置く必要がない。本当に大事で何度も読み返すようなものは別として。

 

物が多いと必要なものを取り出すのが困難になり、時間を無駄にするというのもある。自分が把握できない量の物を所持するのはやめたい。

 

逆に、これだけは持っておきたいという物はPCぐらいか。

PCさえあればいくらでも情報をネットから得られるし(もちろんネットだけでは不十分ではある)、プログラミングもできる。PCの技術を高めるのは楽しい。

いくらでも遊べる。

 

まあ、自分がPC好きだからというだけかもしれないけれど。