ラベル インストール の投稿を表示しています。 すべての投稿を表示
ラベル インストール の投稿を表示しています。 すべての投稿を表示

2021年9月3日金曜日

SAS9.4 インストール十戒

 SAS9.4のインストール・構成は、手順書が合っても失敗することが多く、改善が必要と感じる。マニュアルには説明あるが、勘所として役立つオプションは埋もれている。ということで、私が独断で選んだベストプラクティスを挙げてみる。

  • インストール、構成とHOTFIX適用には必ず応答ファイルを使うこと
  • コンソールモードを使い実行のログ、応答ファイルをエビデンスとして保存
    • -console と -partialprompt の利用を推奨
  • Depotはお客様のDepotとライセンスを使い、サイト番号を合わせる
  • 必要なパッケージやカーネルパラメータの確認はスクリプト化する
  • 細かすぎる手順はオペミスを誘発するのでスクリプト化を検討
  • HOTFIXをどのタイミング、どのツールで取得するか決める
  • Planファイル作成ツールでどのようにプランを作ったか記録を残す
  • パラメータの根拠となる資料のリンクを事前準備チェックシートに残す
  • Planファイル作成ツールで作ったファイルに誤りがある場合がある
  • 包括的なシステムの検証を行うならばSAS Environment Managerを使う

それぞれに理由はあるが、ここでは細かく書かない。

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 の略だそうです。

2016年10月20日木曜日

Object Spawnerのログが英語で出力される

またレアな事象にぶつかったのでメモしておきます。Object Spawnerのログが何故か英語で出力される問題にぶつかりました。OSのロケールは日本語にしているにも関わらずです。
Object Spawnerの設定に言語やエンコーディングは無かったので、1時間ほど調べながら悩みました。

応えは、Local System Accountの言語が英語(EN)になっていたためでした。構築した環境はSAS9.4、Windows Server 2012で、AWS上に構築しています。土台が英語環境だったのであとから、日本語に切り替えたのですがこれが原因でした。

調べたのはレジストリエディタで、Local System Accountのユーザ環境を手繰って、Control Panel, Languagesのエントリの下を見て言語が英語になっていることを確かめました。また、Objspawn.exeをコマンドプロンプトから直接叩いて、他のアカウントではメッセージが日本語ででることを確かめました。

回避策として、他のローカルアカウントをAdministratorsに加えて、ローカルポリーシーでLocal System Accountが持っているのと同じ権限を付与しました。Local System Account自体の言語の設定を変えることも考えましたが、レジストリをいじるぐらいしか手が思いつかず、危険なのでやめました。

2016年8月7日日曜日

ERROR: トランスコード時に文字データが一部損失しました。

文字のエンコーディングで良くあるエラーですが、改めて問題を定義します。このエラーは、異なるエンコーディングへ文字が変換できなかったときに発生します。

理解を深めるために、具体的にエラーを引き起こすコードを示します。このコードはEUCのテキストファイルをわざとUTF-8で読み取ってデータセット化し、SJISのエンコーディングで保存しています。
data data1(encoding='utf-8');
 length name $16;
 input name;
 cards;
与太郎
助六
正蔵
円楽
八雲
;;
run;

data _null_;
 set data1;
 file 'c:\temp\euc.txt' encoding='jeuc';
 put name;
run;

data data2(encoding='utf-8');
 infile 'c:\temp\euc.txt' encoding='jeuc';
 length name $16;
 input name;
run;

data data3(encoding='utf-8');
 infile 'c:\temp\euc.txt' encoding='utf-8';
 length name $16;
 input name;
run;

data data4(encoding='sjis');
 set data3(encoding='utf-8');
run;

エラーは、SJISのデータセットを出力するときに発生します。
362  data data1(encoding='utf-8');
363      length name $16;
364      input name;
365      cards;

NOTE: データセットWORK.DATA1は5オブザベーション、1変数です。
NOTE: DATAステートメント処理(合計処理時間):
      処理時間           0.03 秒
      CPU時間            0.01 秒


371  ;;
372  run;
373
374  data _null_;
375      set data1;
376      file 'c:\temp\euc.txt' encoding='jeuc';
377      put name;
378  run;

NOTE: 出力ファイル'c:\temp\euc.txt' :
      ファイル名=c:\temp\euc.txt,
      レコードフォーマット=V,
      論理レコード長=65534,
      ファイルサイズ (バイト)=0,
      更新日時=2016年08月07日 13時28分31秒,
      作成日時=2016年08月07日 13時06分49秒

NOTE: 5レコードを出力ファイル'c:\temp\euc.txt'に書き込みました。
      最小レコード長は6です。
      最大レコード長は9です。
NOTE: データセットWORK.DATA1から5オブザベーションを読み込みました。
NOTE: DATAステートメント処理(合計処理時間):
      処理時間           0.01 秒
      CPU時間            0.01 秒


379
380  data data2(encoding='utf-8');
381      infile 'c:\temp\euc.txt' encoding='jeuc';
382      length name $16;
383      input name;
384  run;

NOTE: 入力ファイル'c:\temp\euc.txt' :
      ファイル名=c:\temp\euc.txt,
      レコードフォーマット=V,
      論理レコード長=65534,
      ファイルサイズ (バイト)=32,
      更新日時=2016年08月07日 13時28分31秒,
      作成日時=2016年08月07日 13時06分49秒

NOTE: 5レコードを入力ファイル'c:\temp\euc.txt'から読み込みました。
      最小レコード長は6です。
      最大レコード長は9です。
NOTE: データセットWORK.DATA2は5オブザベーション、1変数です。
NOTE: DATAステートメント処理(合計処理時間):
      処理時間           0.01 秒
      CPU時間            0.01 秒


385
386  data data3(encoding='utf-8');
387      infile 'c:\temp\euc.txt' encoding='utf-8';
388      length name $16;
389      input name;
390  run;

NOTE: 入力ファイル'c:\temp\euc.txt' :
      ファイル名=c:\temp\euc.txt,
      レコードフォーマット=V,
      論理レコード長=131068,
      ファイルサイズ (バイト)=32,
      更新日時=2016年08月07日 13時28分31秒,
      作成日時=2016年08月07日 13時06分49秒

NOTE: 5レコードを入力ファイル'c:\temp\euc.txt'から読み込みました。
      最小レコード長は4です。
      最大レコード長は6です。
NOTE: データセットWORK.DATA3は5オブザベーション、1変数です。
NOTE: DATAステートメント処理(合計処理時間):
      処理時間           0.03 秒
      CPU時間            0.01 秒


391
392  data data4(encoding='sjis');
393      set data3(encoding='utf-8');
394  run;

NOTE: データファイルWORK.DATA4.DATAは別なホストにネイティブな形式が使用
      されているか、またはエンコーディングがセッションエンコーディ
      ングと一致していません。クロス環境データアクセスが使用される
      ため、追加のCPUリソースが必要となり、パフォーマンスが低下しま
      す。
ERROR: データセットWORK.DATA4のトランスコード時に文字データが一部損失
       しました。新しいエンコーディングで表せない文字がデータに含ま
       れていたか、またはトランスコード時に切り捨てが発生しました。

NOTE: DATAステップは異常終了しました。
NOTE: エラーが発生したため、このステップの処理を中止しました。
NOTE: データセットWORK.DATA3から3オブザベーションを読み込みました。
WARNING: データセットWORK.DATA4は未完成です。このステップは、
         2オブザベーション、1変数で停止しました。
WARNING: このステップを中止したため、データセットWORK.DATA4を置き換えて
         いません。
NOTE: DATAステートメント処理(合計処理時間):
      処理時間           0.03 秒
      CPU時間            0.01 秒


work.data3は以下のように文字化けしています。EUCのファイルをUTF-8で読み込んだときに文字化けを起こしています。これをSJISで保存しようとしてエラーになっています。


今回、仕事ではまったのが、SASのインストール、構成において途中でエンコーディングの設定を変えてこのエラーにぶつかりました。しかも、文字化けして格納されたのがPostgreのデータベースの中でした。ログファイルや、データセットの中を見ても見つからずにSOURCE, MPRINTで元データを探しまわり時間を費やしました。

教訓ですが、SASをインストした後にエンコーディングを変えてから、構成しましょう。SAS Environment Managerの設定で時間が掛かったのは、このエラーのためです。

2011年4月22日金曜日

SASソフトウェアインストールに必要な権限がありません

SAS9.2(TS2M3)のインストール作業で、タイトルのエラーにぶつかりました。英語のメッセージは、「The user account (domain\user) does not have sufficient rights to install SAS software」です。なんとか解決しましたがが、他に苦しんでいる人もいるかもしれないのでメモしておきます。現象は、既にインストールされているSAS9.2をアンインストールして、再インストールするときに発生しました。
  • 別な誰かがSAS9.2インストール
  • 容量不足でインストール先を変更したいのでアンインストール
  • インストールフォルダを削除(これ大事)
  • 管理者権限のユーザでインストール
  • Deplyment Wizardの途中で何故か必要な権限がないとエラー
  • sdw.log をテクサポに送って調査…
結論としては、Deplyment Wizardを実行するときに -skipadmincheck というオプションをつけて実行します。とある方から教えてもらった方法、経験則なので公式な方法ではないことを書き添えておきます。
  • setup.exe -skipadmincheck
今回のトラブルで不思議だったのは、アンインストールして前のインストールフォルダを削除しても、最初のインストールフォルダの情報がどこかに残っていることです。これは、インストール途中のワークファイルをチェックするとわかります。前のフォルダを参照してエラーとなっているのか??レジストリに中を検索してもそれらしきものは見つからず、どこに隠されているのか謎です。