title "!SASROOT/sashelp/class.sas7bdat"; proc compare base="!SASROOT/sashelp/class.sas7bdat"(drop=age) compare="!SASROOT/sashelp/class.sas7bdat"; run; title;
SASプログラムとログを解析するユーティリティを開発するための備忘録です。This is a memo to develop utility that analyzes the SAS log.
2022年4月19日火曜日
PROC COMPAREでライブラリ参照名を定義しなくてもOK
バージョンアップ案件において、データセットの比較をするときにライブラリ参照名を定義しなくても比較はできます。
あと、比較するときはスクリプトでPROC COMPAREを生成してそれをSASから実行するのが良いです。後から特定の変数を外す、ソート順を変える、数値の比較の精度を変更するといった個別の修正がやりやすいから。
2022年4月8日金曜日
REST APIでViya4でジョブのステータス一覧を取得する
sas-viya CLIでジョブのステータス一覧を取るのは面倒です。なのでREST APIを使って一覧を作ります。サンプルのコードでは日付のフィルタ、ジョブの終了条件のフィルタ、日時で降順ソートして最大1000件のデータを取得しています。
下が実行したときの画面イメージです。sas-viyaのCLIは困ったときに助かることも多いのですが、まとめてデータを取得するには不利です。curlとjqが使えればも応用の幅が広がります。
前提としては sas-viya のCLIでprofile init, auth loginを実行済みであることです。
$ export ACCESS_TOKEN=$(cat ~/.sas/credentials.json | jq -r '.Default."access-token"') $ export URL=https://viya4.example.com/jobExecution/jobs $ curl -k "${URL}?limit=1000&filter=and(ge(creationTimeStamp,2022-04-07),ne(state,"completed"))&orderby=endTimeStamp" -H "Authorization: Bearer $ACCESS_TOKEN" | jq -r '.items[] | [.state, .id, .jobRequest.name, .endTimeStamp, .creationTimeStamp, .modifiedTimeStamp, .elapsedTime, .createdBy, .modifiedBy, .error.message, .error.errorCode ]'
登録:
投稿
(
Atom
)