#目標
Dr.Sum VTB方式でOracleから直接データ取得、Dr.Sumへインポートする。
そのインポートを毎日定刻にバッチ実行したい。
#経緯
これまでCSVをDr.Sumにインポートする方式しかやったことなかったです。
DBから大量データを引っこ抜く時に負荷かかったDB側で問題起きる可能性、が理由で避けてました。
でも今回、CSV作成の時間を節約するため、DB直接つなぎ→Dr.Sumにインポートをテストする許可がお客さまからもらえたので、チャレンジ。
#手順(前半:Oracleがらみの準備)
###(1)Oracle Clientインストール
・Dr.SumサーバにOracle Clientインストール
(32ビットと64ビットがありますので環境に合わせて。以後64ビット前提で説明)
###(2)Oracle Net Configuration Assistant設定
・Oracle Net Configuration Assistantを起動
注)ここらへん、最近のOracleがどうなってるか不明。古い12gで説明します
・ローカル・ネット・サービス起動を選択、次へ
・追加を選び、次へ
・サービス名を入力、不明な場合は管理者に問合せる
・TCPを選択し、次へ
・つなぐDBのホスト名とポートを入力、次へ(不明な場合は管理者に)
・テストを実行→高確率でエラーになる
・ログインの変更ボタンをクリック、DBのユーザとパスワードを入れる
・ネットサービス名を入力し、完了
###(3)ODBC設定
####ODBCとは「Open DataBase Connectivity」
DBとその他の何かをつなぐための設定、と捉えればOKかな。
####(追記)補足
Dr.Sum VTBのデータソース、ODBCとOCI8を検証してみた
・Windowsの管理ツールからODBCデータソース(64ビット)を開く
・システムDSNタブで、追加ボタンをクリック
・Oracleのドライバーを選んで、完了ボタンをクリック
・構成を入力する(TNSサービス名、ユーザ名はこの下で説明)
★TNSサービス名:前述のここ↓で設定した値。ユーザID:データベースのユーザID。
#手順(後半:VTB定義~インポート)
###(4)VTB 定義作成
####VTBとは
データをインポートするときにどういう風にするかを(条件とか、出力レイアウトとか)決めて、「仮想テーブル」として保存するよ。一度定義すれば何度でも使える。
・VTB Creator起動
・データソースを作りますよ、作成ボタンをクリック
・ODBCの設定を使います、日付フォーマットをDBと合わせて、テスト実行
・テーブル選択が開きます、読みたいテーブルを指定し、追加
・テーブル情報が読み込まれ、こんな感じになる
・項目を、こんな感じで全部選んで・・・(続く)
・(続き)下の一覧にドラッグ
・名前をつけて保存
※ここで開くフォルダはDr.Sum Enterprise Managerの設定で指定したフォルダ
※Dr.Sum Enterprise Managerの設定
#もうちょっとだよ・・・
###(5)インポート実行
・さきほど作ったVTB定義を仮想テーブルから選び、すでにDr.Sum内にテーブルを作っていればそのテーブルを、テーブルをこのタイミングで新規作成するならこのまま、実行する
補足:インポート時のエラー
Dr.Sumエラー解決までの近道 - データインポート時のエンコード、制御コード
###(6)バッチで動かす
長くなってしまったので、別で書きました。
Dr.Sum VTBでのDr.Sumインポートを日時指定&自動で動かす(バッチ)
#つぶやき
情シスだったら普通にやる作業だと思いますが、あらためて書き起こすと長い
#ウイングアークのユーザコミュニティ「nest」
私も参加しています。多くの有益な情報があり、交流があります。
世の中が変わり、社外活動の重要性がより増していると考えております。
社外で自分の価値を計れるものさしを持とう。
以上