2017年6月29日木曜日

SAS/ACCESS Interface to Teradataの文字化け対応

Teradataの読み書きで日本語の文字列が化けた場合、まずはココを点検という箇所を紹介します。 Teradata Clientのインストールガイドの中に、"Enable Support for Non-ASCII Character Sets"という項目があります。これを行っていないことがままあります。

詳しい設定は、Teradata Clientの設定ガイドを読んでください。設定項目のキーワードを挙げると、clispb.datの charset_type=、charset_id=を設定し、環境変数COPLIBを定義してください。典型例はcharset_type=N, charset_id=KANJISJIS_0Sです。

SASのWhite Paperはコチラです。
http://support.sas.com/resources/papers/proceedings17/0433-2017.pdf

ちなみに Clispb.datは  Teradata Call-Level Interface version 2 System Parameter Block の略だそうです。

PowerShellでSAS.EXEを停止する。

PowerShellを運用スクリプトの問い合せが少し増えてきました。 バッチ実行しているSAS.EXE処理を見つけて、プロセスの情報を表示するサンプルです。 Get-Processの部分を書き換えれば、プロセスを停止できます。
PS C:\Users\sas> $X=WMIC PROCESS WHERE "CommandLine LIKE '%sas.exe  -nodms -batch%' and caption = 'sas.exe'" GET /FORMAT:LIST | select-string "^ProcessId=" |  % { $($_ -split"=")[1] }
PS C:\Users\sas> $X | Foreach-object -process{Get-Process -id "$_" }

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    126      10     3644      10784    99     0.05  28172 sas

PS C:\Users\sas>



2017年6月27日火曜日

Data Integration Studio + SVN, アーカイブ済みのSASパッケージをインポート

SVNにジョブをアーカイブしたら、取り出すほうもやってみましょう。ファイルのメニューから「アーカイブ済みのSASパッケージ」を選択します。
アーカイブ済みのSASパッケージが一覧で表示されます。 
 試しに古いバージョンのパッケージ名を選んで、インポートボタンを押します。
 ここから先は、SPKファイルのインポートと同じです。下の絵だと既にオブジェクトがあるのでびっくりマークが付いています。






これでジョブのダイアグラムを確認すると、前に保存したバージョンに戻っていることが分かります。いまいち、リビジョン管理のツールを使っている気がしないのは、チェックアウト、ロック、チェックインといった操作がないからと思います。

PROC SQLのPass-Through構文で、ライブラリ参照名のユーザ、パスワードを使う

昔、パススルー構文でデータベースに接続するときにユーザ名とパスワードを書くのが管理上困った記憶があります。ふと調べてたらSAS9.3からCONNECT USINGというキーワードが追加され、ユーザ名とパスワードを埋め込まなくても済むことが分かりました。

参照した記事は コチラ です。

調べたのはSAS9.1.3を使っていた頃でかなり昔のことです。お客様に「回避策無しで、PW埋め込んでください」とお願いしなくて済むのが良いです。

2017年6月8日木曜日

Data Integration Studio + SVN, SASパッケージとしてアーカイブ

昨日はSVNプラグインの設定、今日はSVNのリポジトリにジョブを登録します。

1. DIでジョブを作成

ジョブを作成して、実行した後で保存します。

2. SASパッケージとしてアーカイブ

ファイルメニューからSASパッケージとしてアーカイブを選択します。名前、説明を入力して、OKボタンを押します。

パッケージ(SPK)の形式でエクスポートするダイアログでるので、そのまま進みます。

そのまま進んでエクスポートの処理が正常終了するのを確認します。


3. SVNに保存したSASパッケージを確認

ファイルメニューからアーカイブ済みSASパッケージを選択します。


パッケージの一覧の画面が表示されます。表示のフィルターには、いまのジョブの名前が設定されています。

フィルターを外すと、保存されている全てのパッケージが表示されます。なんか、チェックイン/チェックアウトの操作とずれている気がします。バージョン番号は何故か2ずつカウントアップされています。下の図をみるとわかりますが、バージョン番号はパッケージ名ごとに連番で振られていません。全てのパッケージで連番になっています。私がRCSから時間が止まっているせいなのか、なんだか釈然としません。
Assemblaの方から確認すれば、Recent Eventの一覧にアーカイブした操作が記録されていることがわかります。次はアーカイブから取り出す操作です。






2017年6月7日水曜日

Data Integration Studio + SVNの設定

DIでSubversionのリポジトリを使う機能がありますが、親切丁寧な日本語の解説がありません。ということで、勉強しながら行った設定手順をメモします。

1. TurtoiseSVNインストール
最初にTurtoiseSVNをインストールしてください。私がインストールしたのは、TotoiseSVN 1.9.5 - 64bit、MSIのインストーラがあるので簡単です。

2. SVNのリポジトリをどこかに作る
私はお試しで Assemblaにユーザ登録しました。ユーザ登録したら、Installed Toolsの下にあるSVNをクリック、First Spaceの画面にある、Checkout URL:をコピーして控えます。
3. DIのSVNプラグインの設定
次に、DIのオプションでSVNプラグインのタブの設定例を示します。プログラムパスには、TurtoiseSVNのフォルダ配下にあるSVN.EXEを設定します。ローカルルートパスは、SVNのローカルのリポジトリのフォルダ、サーバーにはCheckout URLのホスト名の部分を、リポジトリにはChekuout URLのホスト名より後ろのパス、ユーザ名はAssemblaで登録したユーザ名設定します。Checkout URLの意味を知っていれば、ポート番号が443、種類がHTTPSを指定すればよいと分かります。
設定後に、接続テストボタンを押すと疎通確認できます。
今日はここまで