2016-06-30 3 views
1

SASライブラリ/フォルダがどのように物理的な場所に格納されているかを理解しようとしています。私は管理レベルでのコンセプトを理解しようとしています。SASライブラリの保存方法

より私の混乱を説明するために、私は一歩一歩を行ってみたい -

(1)SASコードは、クライアントで実行されます。任意の変数/ライブラリ/データセットは、メタデータ層に物理アドレスを指し示す論理アドレスが含まれていることを意味するメタデータ層の定義を持ち、コンピューティング層とCompute Tierで見つけることができるのはLinuxシステムです。論理アドレスと物理アドレスの間のマッピングを見つける方法を教えてください。またはSAS Management ConsoleまたはLinuxで変数/ライブラリ/データセットをどのようにトレースできますか。

(2)SASクライアント - > SASサーバー - >データベース。したがって、データベースから任意のテーブルにアクセスすると、最初にSASテーブルに変換されます。私がこの論理について正しいのであれば、これらのSASテーブルが保持される物理的な場所があるはずです。 Compute Tierでこれらの物理的な場所を見つける方法を教えてください。

(3)私がユーザーとしてSASデータセットを作成すると、どのフォーマットが保存され、どこに保存されますか?それはLinux上でフラットファイルとして保存されるのか、あるデータベースのテーブルとして保存されるのでしょうか?

(4)私はこの質問を経て、任意のデータテーブルをSASサーバーにデータベースサーバからロードされると1つの以上の混乱が

Proc SQL: How/When does SAS Move the Data

を生じてしまいました。テーブルが呼び出されるたびに、またはそのたびにデータベースがヒットするように、セッション全体に存在しますか。

私はSASの理解が間違っている可能性がありますので、可能な限り修正してください。

Q2 & 3に関しておかげ

+0

これらはおそらく、あなたが一度にあまりにも多くを持っている例外とSOの質問、有効です。 SASスタッフと開発者がいて、ここにあまりにも多くの管理者がいないので、より詳細なものをcommunities.sas.comで尋ねることをお勧めします。 – Reeza

答えて

0

)有りと無しに関するデータベースが変換されます。データベースを読み込むと、クエリに応じて、SASはクエリをDBに渡して結果をSASに返します。結果がテーブルの場合、ユーザーが保存する場所を指定します。 Q3とのリンクについては、WORKライブラリに行くと仮定します。これは、サーバー内のスクラッチ/一時スペースの一種ですが、SAS内にあります。これはSASセッションに存在し、セッションが終了するとクリアされます。 WORKフォルダ内のデータセットは、SAS7BDATという独自のSAS形式で保存されます。 作業ライブラリは、基本的にデータベースではなく、ディレクトリ内のフォルダです。

何らかの理由でクエリをDBに渡すことができない場合、関数が有効なデータベース関数でないか、またはワークライブラリのSASデータセットと結合されている場合、サーバーのテーブル全体が最初にSASセッションを開始し、クエリが実行されます。これは非常に効率的なものになる可能性があるため、これがどのように機能するかを理解することはユーザーの関心です。

0

1:データセットでPROC DATASETSを実行すると、ファイル名フィールドにその場所が表示されます。 SAS EGでDATA SET ATTRIBUTESタスクを実行する場合も同様です。

Q2: Reezaが述べたように、多くのクエリはDB directで処理できます。 SASは、SQL、Oracle、および仲介データセットが必要でない多数の他のDBに対する優れたサポートを提供しています。

Q3:あなたのセッションで新しいフォーマットを作成し、それをどこに保存先を指定しない場合は 、それはSASカタログとしてあなたWORKライブラリに保存されます。このプログラムを実行すると、カタログの内容を調べることができます。PROC CATALOG CATALOG=WORK.FORMATS;contents;RUN;通常、既定の形式と永続形式は別の場所に格納されます。セッションでロードされる場所を調べるには、FMTSEARCHオプションの内容を取得する必要があります。これらの場所は、左から右に必要な書式が検索されます。 PROC OPTIONS option=FMTSEARCH; RUN;

Q4: 質問はSQLプロシージャパススルー施設について実際にあるオプションを検討するためのコード。 this technical documentが役に立ちます。他にも有用な論文がたくさんありますが、あなたの特定の質問に1つの文で答えることができます:はい、データベースは常にヒットします。これを避けたい場合は、夜間のETLプロセスを作成し、昼間の処理のためにデータベースをSASにコピーしますが、SQLパススルー機能を使用するために、整形式のSQLクエリをデータベースに送信する方が有益です。

よろしく、 Vasilij

+0

ありがとうVasilij。管理者として、すべてのライブラリがワークフォルダ内にあることを追跡する権限が与えられています。 SASのフォルダ形式は何ですか?ユーザ(1)、ユーザ(2)、フォルダ(B)、ユーザ(2)、フォルダ(A) 1)、ユーザー(2)}、作業{{ユーザー(1)、ユーザー(2)} – user2676132

+0

こんにちは@ user2676132このフォルダは、OSのアクセス権によって管理される実際の物理フォルダです。多くの場合、ユーザーはその場所にFTPしてフォルダ構造を見ることができます。通常は/ your_path_to_work_location/SAS_work {random_string} _hostnameのようなものです。現在の作業フォルダの物理的な場所を確認するには、次のコードを実行してグローバルマクロ変数SASWORKLOCATIONを問い合わせてください: '%PUT SASWORKLOCATION =&SASWORKLOCATION'; –

関連する問題