/* ジョブスケジューリングのJSONファイルとマップのファイルを定義 */ filename folders temp; filename jsonmap temp; /* JSONファイルを取得 */ proc http url="https://henteko.azure.com/jobFlowScheduling/flows" out=flows oauth_bearer=sas_services; headers 'Accept'='application/vnd.sas.collection+json'; run; /* JSONファイルの先頭をログに出力して確認するだけ */ data _null_; infile flows; length buf $4096; input buf 1-4096; put _all_; run; /* JSONエンジンで読み込ませて、マップは生成 */ libname flows json fileref=folders map=jsonmap automap=replace; /* 後はライブラリ参照名から要素と中身を見る */ proc print data=flows.items; run;
SASプログラムとログを解析するユーティリティを開発するための備忘録です。This is a memo to develop utility that analyzes the SAS log.
2021年11月26日金曜日
JSONのファイルをPROC HTTPで読み込む
SASでJSONのファイルを読み込むのは面倒かと思っていましたが、JSONエンジンとAUTOMAPオプションを使うと簡単にデータセットとして中身を見ることが出来ます。とりあえず読み込んでから中味を確認して、あとは用途に合わせて表形式に加工します。この例はViyaのジョブフローのスケジューリングの情報を取ってきます。
自分でマップファイルを作らなくても、JSONエンジン任せで構造を読み解いて参照できるのはすごく楽です。下はJSONファイルを読み込んだ例で、もちろん中身の定義で見え方は異なります。
2021年11月14日日曜日
HHKB キーマップを vi に近づけて設定
去年ぐらいから英語版のキーボードを使っている。
- FILCO Majestouchを10年超使う
- Mistel BAROCCO MD770 で英語版で左右分離を8か月ぐらい
- HHKB Professional 日本語 思った以上にキーが多くて使いこなせず 1週間で諦め
- HHKB Professional Hybridが現在
vi歴は20年以上なので、キーマップを変更してHJKLにカーソルキーを映した。通常は左側にあるWindowsキーを右側にCommandを左側に移している。スラッシュとバックスラッシュの位置はまだ調整の余地あり。本当はX+Commandで1文字削除したかったが、HHKBの仕様で割り当てできない。代わりにD+Commandにしたがこれが思ったよりも使いやすい。左手で2つのキーを同時に押しやすいから。
2021年10月28日木曜日
SAS9.4 どこでシステムオプションが設定をされているか調べる
私が良く使うけど、意外と認識されていないのが PROC OPTIONSのオプションVALUEです。このVALUEオプションを付けると、SASシステムオプションの設定がどこで行われたか判ります。引数、特定のコンフィグファイルが一目瞭然です。
proc option value=encoding value;
run;
2021年9月3日金曜日
SAS9.4 インストール十戒
SAS9.4のインストール・構成は、手順書が合っても失敗することが多く、改善が必要と感じる。マニュアルには説明あるが、勘所として役立つオプションは埋もれている。ということで、私が独断で選んだベストプラクティスを挙げてみる。
- インストール、構成とHOTFIX適用には必ず応答ファイルを使うこと
- コンソールモードを使い実行のログ、応答ファイルをエビデンスとして保存
- -console と -partialprompt の利用を推奨
- Depotはお客様のDepotとライセンスを使い、サイト番号を合わせる
- 必要なパッケージやカーネルパラメータの確認はスクリプト化する
- 細かすぎる手順はオペミスを誘発するのでスクリプト化を検討
- HOTFIXをどのタイミング、どのツールで取得するか決める
- Planファイル作成ツールでどのようにプランを作ったか記録を残す
- パラメータの根拠となる資料のリンクを事前準備チェックシートに残す
- Planファイル作成ツールで作ったファイルに誤りがある場合がある
- 包括的なシステムの検証を行うならばSAS Environment Managerを使う
それぞれに理由はあるが、ここでは細かく書かない。
2021年6月17日木曜日
ERROR "このスポーナで管理されているプロセスと一致しません"の調べ方
Gridの構成で、良くObject Spawnerのエラーに遭遇します。この原因を突き止めるのはなかなか厄介です。エラーのメッセージと原因がかけ離れていて、なんだかさっぱりわからないからです。
”ERROR [00051223] :sas - 指定された UUID DA1D1904-9BC1-364A-9088-ECC2E1 3877B3 は、このスポーナで管理されているプロセスと一致しません。”
で、色々試して、以下のようにWorkspace Serverを起動するとエラーの原因が突き止めやすいです。proc setinit; run; を実行するSASのプログラムをテンポラリに作って、端末から実行します。
”${Lev1}/SASApp/WorkspaceServer/WorkspaceServer.sh -sysin /tmp/foo.sas -nodms -batch”
lsfのジョブ履歴から原因探しても、結局はWorkspace Serverにたどり着くことが多いです。
今日のエラーの原因は、PerfLogsのディレクトリのパーミッション設定が原因でした。良くあるのがオプションの指定の間違い、WORKの割当失敗などです。
2021年5月24日月曜日
SAS 9.4のシステムが遅いときの点検項目
SAS9.4のシステムが遅いときに、どこから点検していけば素早く問題を解決できるか?思いつくままに、場当たり的に探すのは効率が悪い。また、基盤の問題はSASからは検出できないことが多いため、OS、N/Wも含めた調査が必要である。切り分け、問題を調査するときに役立つ点検ポイントを列挙する。
ホスト名とIPアドレス
ホスト名とIPアドレスは正引き・逆引きできるか?意外と正しい値が得られずに、複数のNIC、経路を辿って遅いケースが多いと感じる。ping, nslookupなどのコマンドを使いサーバ間の名前、名前からIPを引けることを確認する。
エラー・アラートの点検
SAS Environment Managerから点検すれば早い。もしSAS Environment Managerが使えないならば、めぼしいログファイルを片端から目視でチェックする。
N/W経路による違い
サーバ上からのアクセスと、クライアントからのアクセスによる差を見ることで、N/Wの経路の問題かサーバの問題か切り分けできる。N/Wの帯域を故意に絞っている環境だと、いかんともしがたい。
ユーザによる違い
認証のサーバによる違いで遅いケースがある。ローカルのユーザ、LDAPのユーザと比べて差を確かめる。
構築時の基準値と比較
あなたがもし慎重であれば、構築時にログインの時間、空のレポートを表示する時間をとっているはず。そのときの時間と比べて、どれだけ遅くなったかを比較すると、構築時の問題か、構築後の問題か切り分けできる。
システムの負荷
CPU、メモリ、ディスク、N/Wについて、JP1とかTivoliから確認する。
これらの点検で、問題の8割ぐらいは捕捉できると感じる。これらの点検には0.5人日あればできる。
2021年3月10日水曜日
Junitのダウンロード
curlでWebサイト等のファイルをダウンロードする方法。たまにしか使わないので忘れがち、メモしておきます。リモートで働いていると、ローカルのPCを経由していると何かと遅いから
登録:
投稿
(
Atom
)

