#author("2024-05-13T07:13:27+00:00","default:editor","editor")
#author("2024-05-28T04:59:59+00:00","default:editor","editor")
[[SAGA]]

[How to register database]

最終改訂(2023/11/02)

#contents

* データ更新作業の流れ [#t777cef1]
** 1. 入力データの更新 [#u11169c2]
- rsyncを使って元のCSVファイルを$SAGA_HOME/CSVfile/にコピーする。コマンドはREADMEを参照。

** 2. 矮小銀河データの天体カタログを作成する。(BXXXXエントリーを更新した場合のみ) [#u7f78c7a]
- $SAGA_HOME/Registration/で行う。主に使うスクリプトとその説明は以下の通り。
-- create_SAGAcatalog.pl: 天体カタログを作成する。&color(red,yellow){初回のみ。使用の必要なし。};
-- renew_SAAGcatalog.pl: 天体カタログを更新する。
-- update_SAAGcatalog.pl: 天体カタログを更新する。(旧名renew_SAGAcatalog.pl 2024/05/28に変更)
--- Backup Table Mode: MySQL上のobject_catalog, tmp_objectをバックアップする。Outputに保存するが、通常は事前に保存されるのでこのモードを使う必要はない。
--- Temporary Table Mode: CSVfile_LG/以下にあるcsvファイルからtmp_object用のcsvファイルtmp_object.csvを生成する。
--- Assign SAGA ID Mode: CSVfile_LG/以下にあるcsvファイルから新規天体を検出し、既存のMySQLテーブル、tmp_object, object_catalogに登録してある天体と比較し、同一天体か否かを判定する。既知天体の場合はsyonym_list (object_catalog)を更新し、新規天体の場合は新規IDとして登録する。また、object_catalog用のcsvファイルobject_catalog.csvを生成する。
--- Upload MySQL Mode: 生成されたobject_catalog.csv, tmp_object.csvをMySQLにアップロードする。

** 3. 銀河系データについて同一天体のチェックを行う。 [#oc63e3f7]
- $SAGA_HOME/Tools/SimbadExplorer.pl、$SAGA_HOME/Tools/MakeSynonymList.plおよび$SAGA_HOME/Tools/MakeObjectCatalog.plで行う。
-- SimbadExplorer.pl: SIMBADにアクセスして天体ごとのhtmlデータを取得する。座標で検索した場合、"No astronomical objects found"のエラーHTMLが出力されるので、$file_removing_mode=1および$unlink_file=1として再度スクリプトを走らせる。
--- SIMBADのrel. IDに注意する。バージョンが異なると処理が変わる可能性がある。ファイルをすべてダウンロードし直すときは$try_again_not_found = 1とする。ただし、スクリプトの実行に数日間かかるので注意。
--- ファイルの保存先はhtml_SIMBAD/
--- 座標検索で複数の候補天体が見つかった場合はhtml_SIMBAD/Multi_Candidates/に保存され、SIMBAD検索が機能しなかった場合はhtml_SIMBAD/Not_Founds/に保存される。(ファイル検索に成功したかどうかはファイルサイズを見れば分かる。天体が見つかった場合はHTMLファイルのサイズは40-50kB。複数候補を表示したHTMLファイルは20kB以下。見つからなかった場合は10kB以下。)
-- SIMBAD_Explorerの再実行時に使うかもしれないスクリプト。
--- check_remove.pl: Multi_Candidates/にあるファイルの再検索に成功した場合に使う。Multi_Candidates/以下にあるファイルのうち、html_SIMBAD/に保存し直されたファイルがある場合、Multi_Candidates/のファイルを削除する。
-- MakeSynonymList.pl: html_SIMBAD/に保存したデータを読み取り、同一天体のリストを作成する。
--- 保存先は同一ディレクトリ内のsynonym_list_MWおよびnot_synonym_list_MW
--- SIMBADの書式が合わないとBasic data:からの天体名読み出しに失敗する。
-- MakeObjectCatalog.pl: synonym_list_MW, not_synonym_list_MWからMySQLに登録するobject_catalogテーブル用のCSV fileを生成する。

** 4. CSVファイルからMySQLのアップデート用データベースにアップロード [#fea4b1f2]
- $SAGA_HOME/Registration/で行う。主に使うスクリプトとその説明は以下の通り。
-- registration.pl : 登録作業を行うスクリプト。設定ファイルに従ってどの工程を使うか決定する。
-- settings_Reg.yaml : 設定ファイル。工程や使うデータベース、オプションなどすべてこのファイルでコントロールする。
-- XXX.pm : registration.plから呼び出されるモジュール。作業内容ごとに分類されている。
- 設定ファイルの注意事項
-- アップロードするデータベース名は公開用ではない一時的なものとする。現在では以下を使用。
 saga_uptest
 saga_LG_uptest
-- dir_in_csvでMWかLGか処理が分岐されるので注意が必要。
-- MWのみのアップデートの場合はrun_copy_mysqldataを1にすると一度の実行で両方のデータベースが更新される。

** 5. CSV2Ascii.pmで生成されたhtmlファイルに注釈を追加する。 [#w627f500]
- HE1327-2326など、$SAGA_HOME/Registration/READMEに記載してある。

** 6. 公開用テキストデータを生成する。 [#pabfbfeb]
- create_txt_table.plを実行してtsv形式のファイルを作る。
-- 誤差ありと誤差なしデータの2つを生成するので2回スクリプトを走らせる。
-- &color(blue,yellow){(2019/11/15改訂)}; 誤差とフラグのカラムを分けたバージョンとPriorityで推奨されるデータセットの2つを出力するように改良した。
--- 全データの出力は$print_all_data=1、推奨データの出力は$print_rec_data=1と設定する。

** 7. 動作確認後、MySQLのバックアップと復元を使ってデータを更新する。 [#r702a5b4]
- 既存の公開バージョン(saga, saga_LG)を過去のバージョンとして保管する。
-- $SAGA_HOME/vda4/bk_mysqlにあるバックアップデータを使って過去のバージョンを作成する。(vda4は予備のHDD)
-- bak******_saga********.sqlを編集してデータベース名を変更する。
- 2.で作ったバックアップファイルを編集して公開用データベースを差し替える。
-- データベースのバックアップと復元については以下を参照。
- 例(2019/12/09更新)
-- (1) 旧バージョンのデータベース作成
 mysql> create database saga20190124_MW;
 Query OK, 1 row affected (0.00 sec)
 mysql> create database saga20190124_LG;
 Query OK, 1 row affected (0.00 sec)
-- (2) バックアップデータの読み込み
 > mysql saga20190124_MW -u suda -p < bak190124_saga20190123.sql
 > mysql saga20190124_LG -u suda -p < bak190124_saga_LG20190122.sql
-- (3) Prev/の旧バージョン検索システムで参照データベースを変更
-- (4) 新バージョンのデータベース読み込み
 > mysql saga -u suda -p < bak191208_saga20191119.sql
 > mysql saga_LG -u suda -p < bak191208_saga_LG20191207.sql

**8. 必要なデータのコピー [#kc84c6af]
- Dataの差し替え。rsyncが便利
 > sudo rsync -av ~/public_html/Data/html20210407/ Data/html/
 > sudo rsync -av ~/public_html/Data/images20210407/ Data/images/

* MySQLデータのバックアップと復元 [#y959f5b1]

** 1. make a backup [#c350846c]

*** 1-1 MySQLのバックアップ [#w3c95b77]

(1) create a new backup file on saga
  [backup]% mysqldump --databases saga -u suda -p > bak091001_saga20090902.sql
  rule of filename: bak[date of creating backup]_[database name][date of the last update of database].sql

or

(1') find a backup file in saga
   saga:/home/suda/public_html/backup/bak090510saga1.sql

(2') rename it (suda@saga) &color(red){bak[date of creating the file]_[database name][date of the last update of the database].sql};
  [backup]% mv bak090510saga1.sql bak090620_saga20090505.sql

(3) open the file and change the database name from saga1 to saga20090505 (suda@saga)
  [backup]% vi bak090620_saga20090505.sql

(4) issue commad (suda@saga)
  [backup]% mysql -u suda -p < bak090620_saga20090505.sql

*** 1-2 公開データのアーカイブ [#t0dcb653]

(1) ディレクトリ作成
  [/var/www/html/Prev/]% sudo mkdir 20170901_MW
  [/var/www/html/Prev/]% sudo mkdir 20170829_LG

(2) データをコピーor移動: Retrieval[_LG], Lib, Data, TableStructure.txt
  [/var/www/html/Prev/20170901_MW/]% sudo cp -rp ../../Lib ./
  [/var/www/html/Prev/20170901_MW/]% sudo cp -rp ../../Retrieval ./
  [/var/www/html/Prev/20170901_MW/]% sudo cp -rp ../../Data ./
  [/var/www/html/Prev/20170901_MW/]% sudo cp -p ../../TableStructure.txt ./

(3) wikiを編集、リンクを確認。簡単な動作確認も忘れずに。
  固定ページ/Log

** 2. copy Retrieval [#id108f8a]

(1) copy files (dbworker@saga)
  % su dbworker
  [Prev]% mkdir /home/dbworker/public_html/Prev/20090505
  [Prev]% cd ~/public_html/Prev/20090505
  [20090505]% cp -p ../../TableStructure.txt ./
  [20090505]% cp -rp ../../Lib ./
  [20090505]% cp -rp ../../Retrieval ./
  [20090505]% cp -rp ../../Data ./
%%[20090505]% mkdir Registration%%~
%%[20090505]% cp -rp ../../Registration/html Registration/%%~
%%[20090505]% cp -rp ../../Registration/images Registration/%%~
%%[20090505]% cp -p ../../Registration/*css Registration/%%~

(2) change $database_name in db.cgi from saga1 to saga20090505 (dbworker@saga)
  [Retrieval]% vi db.cgi

** 3. register old database [#ebc04365]

(1) restore the backup file created at 1-(1).
  [backup]% mysqldump -u suda -p saga20090902 < bak091001_saga20090902.sql

(2) edit db.cgi and backup file, and change the database name
  [backup]% vi bak091001_saga20090902.sql
  [20090505/Retrieval] vi db.cgi

(3) upload backup file (rename database cannot be used after MySQL 5.14
  [backup]% mysql saga20090905 -u suda -p < bak091001_saga20090902.sql

** 4. register new database [#f7535362]

(1) check Entries in CSVfile (suda@saga)
  [CSVfile]% mv A0134 storage/
  [CSVfile]% mv A0095 storage/
  [CSVfile]% mv A0120 storage/
  [CSVfile]% mv A0173 storage/
  [CSVfile]% mv A9999 storage/

(2) check registration database name and user name (suda@saga)
  Main DB name : saga
  Temporary DB name : suda_tmp
  DB user name : saga_user
  [Lib]% vi settings.txt
    DBname:=saga
    DBuser:=saga_user

(3) confirm required files (suda@saga)
  DBRoot/Tools/html_SIMBAD

(4) register (suda@saga)
  [Registration]% ./registration.pl

** 5. create a list of added paper [#o73fa7e2]
(1) check the updated history at astro3:test.compilation_history.
  select Date, User, Entry, Comment, TIMESTAMPDIFF( MONTH, Date, DATE(NOW()) ) as "Month Diff" from compilation_history where TIMESTAMPDIFF( MONTH, Date, DATE(NOW()) ) < 24 and Entry like "A%" order by Entry;

(2) update wiki

* Project based databaseの作成と更新 [#ja4e3e26]

** 1. データ登録の準備 [#ab870c37]

(1) Registration/settings_Reg.yaml
 database_name : saga_LAMSUB
 run_copy_mysqldata            : 0

| 変数名 | 値          | コメント                          |h
| run_make_objectcatalog_MW | 1     |                                           |
| run_list2sq | 1     |                                 |
| run_solarabundance_correction | 1 |  |
| #run_make_abn_tables | 0 | # obsolete |
| run_csv2ascii                 | 1 | # unnecessary for MW if uploaded for dSph. |
| run_plot_abundances           | 1 |  |
| run_print_starlist            | 0 | # only for dwarf galaxy mode |
| run_define_standard_value    | 1 |    |
| run_define_star_class         | 1 |    |
| run_make_positiondata         | 0 |  # This is not yet implemented for dSph.  # Output file is not used. |
| run_get_position              | 1 |  # need to run this twice for unknown reasons |
| run_copy_mysqldata            | 1 |    |
| add_comment_in_registration | 0 |  registration tableはなし |

 dir_in_csv             : 
  A : "../CSVfile_LAMSUB"

(2) ファイルやディレクトリの移動
- Registration/Data/html, imagesのバックアップまたはファイル名変更。
- Registration/Output/abundance.csv他List2SQL.pmで生成されるCSVファイルのバックアップ。

(3) MySQLバックアップ(更新時のみ)
 % cd DBHOME/vda4/bk_mysql/
 % mysqldump --databases saga_LAMSUB -u suda -p > bak231102_saga_LAMSUB20200622.sql

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS