ページ一覧:
ホーム /
大カタログの登録 /
小カタログの登録 /
テーブルカラム情報 /
HDDのコピーサービス
カタログを登録する前に, インストール手順 に従って,OS と PostgreSQL のセットアップを行なってください.
このページでは,
2MASS PSC の登録手順を示します.
他の大カタログも同様の手順でインストールできます.
その場合,「twomass
」を他に置き換えてください.
必要となるデータファイルをダウンロードし, 解凍しておいてください. データファイルの置き場所はどこでもかまいません.
次に wget を使って 2MASS PSC に必要なデータファイルすべてを 取得する例を示します.
$ mkdir twomass_data $ cd twomass_data $ wget -nd -r http://darts.jaxa.jp/pub/ir/2masskit/v2/twomass/
2MASS Kitを展開したディレクトリの「twomass
」ディレクトリに入り,
ダウンロードしたデータファイルに対して,
下記のようにシンボリックリンクしておきます.
$ cd twomass $ ln -s (どこか)/twomass_data/*.db.txt .
Makefile をエディタで開きます.
$ vi Makefile
2MASS Kit では,2種類のテーブル「メインテーブル」「位置検索専用テーブル」
を作成します.
基本的に位置検索についてはストアドファンクション経由で
「位置検索専用テーブル」を使って行なわれます.
その他の検索は,平凡な SELECT…FROM…WHERE…
構文により
「メインテーブル」で検索を行ないます.
ただし,座標を条件に含まずいきなりフラックス等で検索する場合,
インデックスを作成したとしてもその分布の中心付近では
「LIMIT
」句で数千件程度に制限をつけないと
現実的な速度では検索できないと考えてください.
Makefile の INDICES
で,「メインテーブル」の
どのカラムにインデックスを作成するかを指定できます.
2MASS PSCの場合のデフォルトでは,j_m,h_m,k_m
となっており,
j,h,k のフラックスに対してインデックスを作成します.
必要に応じて,カラム名を追加してください.
ただし,objid
に関しては
指定しなくてもインデックスが作成されますので,追加しないようにしてください.
Makefile の準備ができたら make します.
$ make
以上で,SQLファイルが生成されました.
UNIXの一般ユーザで,データベース "2MASS" に postgresロール(PostgreSQLのスーパーユーザ)でログインし, テーブルスペースを登録します.
$ psql -U postgres 2MASS Password for user postgres: xxxxxx psql (8.4.5) Type "help" for help. 2MASS=# \i twomass_create_tablespace.sql CREATE TABLESPACE CREATE TABLESPACE CREATE TABLESPACE CREATE TABLESPACE CREATE TABLESPACE CREATE TABLESPACE 2MASS=# \q
UNIXの一般ユーザで,データベース "2MASS" に adminロールでログインし,テーブルを登録します.
$ psql -U admin 2MASS Password for user admin: xxxxxx psql (8.4.5) Type "help" for help. 2MASS=> \i twomass_create_table.sql CREATE TABLE CREATE TABLE
注意: これ以降,実行に非常に時間がかかるコマンドが含まれてきます. Adaptec RAID 2405 + S-ATA2 HDD ×2 (RAID1) を使用した場合の所要時間を書いてありますが, 環境によっては,それより数倍から10倍程度かかる事もあります.
続いて,メインテーブルのデータ登録とプライマリキーの作成を行ないます. 登録完了まで,数時間(5時間以上)かかります.
2MASS=> \i twomass_main_copy.sql SET psql:twomass_main_copy.sql:xxxxxxxxx: NOTICE: ALTER TABLE / ADD PRIMARY KEY will create implicit index "twomass_pkey" for table "twomass" ALTER TABLE SET
下記のようなメッセージが表示される事がありますが,問題ありません:
LOG: checkpoints are occurring too frequently (7 seconds apart) HINT: Consider increasing the configuration parameter "checkpoint_segments".
もし,データ登録が3日ほどたっても終わらない場合, BIOSでのS-ATAインタフェースの設定に問題がある可能性があります. FAQ をご覧ください.
次のようにテーブルの作成・データ登録・インデックス作成を 行ないます. データ登録には約30分,インデックス作成には約80分かかります.
2MASS=> \i twomass_eqi_create_table.sql 2MASS=> \i twomass_eqi_copy.sql 2MASS=> \i twomass_eqi_create_index.sql
インデックス作成中に下記のメッセージが表示される事がありますが,問題ありません.
ERROR: canceling autovacuum task CONTEXT: automatic analyze of table "xxxxxxxx"
2MASS用ストアドファンクションを登録します.
2MASS=> \i twomass_create_function.sql
2MASS=> \i twomass_main_grant.sql 2MASS=> \i twomass_eqi_grant.sql
座標以外を最優先の検索条件としたい場合には, メインテーブルにインデックスを作成してください. 標準設定の場合,完了まで数時間かかります.
2MASS=> \i twomass_main_create_index.sql
メインテーブルのインデックスは,後から追加する事もできます.
MakefileのINDICES
にカラム名を追加し,makeした後,上記と同様
「twomass_main_create_index.sql
」を実行します.
その場合,インデックス作成後に「VACUUM ANALYZE Twomass;
」を
必ず実行してください.
いよいよ最後のコマンドです. 次のコマンドの後,数時間待てば,検索ができるようになります. おつかれさまでした.
2MASS=> \i twomass_vacuum.sql
なお,VACUUM ANALYZE を引数無しで実行すると
「WARNING: skipping "pg_type" --- only superuser or database owner can vacuum it
」
のようなメッセージがたくさん表示されると思いますが,
問題ありませんので無視してください.