2016-06-30 21 views
1

Ich habe versucht zu verstehen, wie SAS-Bibliotheken/Ordner am physischen Speicherort gespeichert werden. Ich versuche das Konzept auf Administrationsebene zu verstehen.Wie SAS-Bibliotheken gespeichert werden

meine Verwirrung mehr erklären, ich möchte Schritt für Schritt gehen -

(1) Der SAS-Code auf Client ausgeführt wird. Jede Variable/Bibliothek/jedes Dataset hat eine Definition auf Metadatenebene, dh Metadatenebene enthält logische Adresse, die auf physische Adresse verweist und die wir auf Compute Tier und Compute Tier auf Linux System finden. Wie finde ich die Zuordnung zwischen logischer und physischer Adresse? oder Wie kann ich die Variable/Bibliothek/das Dataset in SAS Management Console oder Linux verfolgen?

(2) SAS-Client -> SAS-Server -> Datenbank. Wenn wir also auf eine Tabelle aus der Datenbank zugreifen, wird sie zuerst in die SAS-Tabelle umgewandelt. Wenn ich mit dieser Logik recht habe, sollte es einen physischen Speicherort geben, an dem diese SAS-Tabellen gespeichert sind. Wie kann ich diesen physischen Standort auf Compute Tier finden?

(3) Wenn ich als Benutzer ein SAS-Dataset erstelle, welches Format wird dann gespeichert und wo? Wird es als flache Datei unter Linux oder als Tabelle in einer Datenbank gespeichert?

(4) Ich ging durch diese Frage und eine weitere Verwirrung bekam

Proc SQL: How/When does SAS Move the Data

Wenn jede Datentabelle von Datenbankserver auf SAS-Server geladen entstanden. Sitzt es dort für die gesamte Sitzung wie oder jedes Mal, wenn die Tabelle aufgerufen wird, soll die Datenbank getroffen werden.

Ich könnte mit dem Verständnis falsch sein, das ich mit SAS habe, also bitte korrigieren Sie mich, wo immer es möglich ist.

Dank

+0

Diese sind vermutlich gültig SO Fragen, mit der Ausnahme, dass Sie auf einmal zu viele haben. Ich würde empfehlen, dass Sie einige der detaillierteren auf communities.sas.com fragen, da SAS-Mitarbeiter und -Entwickler dort sind und es nicht zu viele Administratoren hier gibt. – Reeza

Antwort

0

Q2 Bezüglich & 3) Ja und nein bezüglich Datenbank konvertiert werden. Wenn Sie eine Datenbank lesen, leitet SAS die Abfrage je nach Abfrage entweder an die Datenbank und dann an SAS weiter. Wenn die Ergebnisse eine Tabelle sind, hängt es davon ab, wo der Benutzer sie zum Speichern angegeben hat. Für die Verknüpfung mit Q3 nehmen wir an, dass es in die WORK-Bibliothek geht. Dies ist eine Art von Scratch-/Temp-Space auf einem Server, aber innerhalb von SAS. Es existiert für die SAS-Sitzung und wenn die Sitzung geschlossen ist, wird es gelöscht. Datensätze im Ordner WORK werden in einem proprietären SAS-Format SAS7BDAT gespeichert. Die Arbeitsbibliothek ist im Wesentlichen ein Ordner in einem Verzeichnis, nicht in einer Datenbank.

Wenn die Abfrage aus irgendeinem Grund nicht an die Datenbank übergeben werden kann, ist entweder eine Funktion keine gültige Datenbankfunktion oder sie wird mit einem SAS-Dataset aus der Arbeitsbibliothek verknüpft. Die gesamte Tabelle vom Server wird zuerst in die Datenbank importiert SAS-Sitzung und dann wird die Abfrage ausgeführt. Dies kann sehr effizient sein, daher ist es im Interesse des Benutzers zu verstehen, wie dies funktioniert.

0

Q1: Wenn Sie PROC DATASETS für das Dataset ausführen, finden Sie dessen Position im Feld "Dateiname". Das Gleiche kann erreicht werden, wenn Sie die Aufgabe DATA SET ATTRIBUTES in SAS EG ausführen.

Q2: Wie Reeza bereits erwähnt, können viele Anfragen von der DB direkt bearbeitet werden. SAS bietet eine hervorragende Unterstützung für SQL, Oracle und eine Reihe anderer DBs, bei denen keine Zwischen-Datasets erforderlich sind.

Q3: Wenn Sie ein ganz neues Format in Ihrer Sitzung erstellen und geben Sie nicht, wo sie gespeichert wird, wird es in Ihrer Arbeit Bibliothek als SAS-Katalog gespeichert werden. Sie können den Inhalt dieses Katalogs untersuchen, indem Sie dieses Programm ausführen: PROC CATALOG CATALOG=WORK.FORMATS;contents;RUN; Normalerweise werden die standardmäßigen und permanenten Formate an anderer Stelle gespeichert. Sie müssen einen Inhalt der FMTSEARCH-Option abrufen, um zu prüfen, welche Speicherorte für Ihre Sitzung geladen sind. Diese Orte werden nach einem von links nach rechts benötigten Format durchsucht. Code die Möglichkeit zu prüfen: PROC OPTIONS option=FMTSEARCH; RUN;

Q4: Die Frage ist wirklich über SQL-Prozedur Pass-Through-Einrichtung. Sie könnten this technical document nützlich finden. Es gibt eine Menge anderer nützlicher Papiere, aber um Ihre spezifische Frage in einem Satz zu beantworten: Ja, die Datenbank wird ständig getroffen. Wenn Sie dies vermeiden möchten, erstellen Sie einen Overnight-ETL-Prozess und kopieren Sie die Datenbank für die Tagesverarbeitung auf SAS, aber es könnte vorteilhafter sein, wohlgeformte SQL-Abfragen zur Verarbeitung an die Datenbank zu senden (SQL Pass-Through-Funktion verwenden).

Grüße, Vasilij

+0

Danke Vasilij. Gibt es als Administrator die Möglichkeit, zu verfolgen, welche Bibliotheken im Arbeitsordner vorhanden sind? Was ist das Ordnerformat für SAS? Es ist wie, Benutzer (1) {Ordner A, Ordner B, Arbeit}, Benutzer (2) {Ordner A, Ordner B, Arbeit} oder Ordner A {Benutzer (1), Benutzer (2)} Ordner B {Benutzer (1), Benutzer (2)}, Arbeit {{Benutzer (1), Benutzer (2)}. – user2676132

+0

Hey @ user2676132 der Ordner ist tatsächliche physische Ordner durch Ihre Betriebssystem Berechtigungen geregelt. In vielen Fällen können Benutzer FTP an diesen Speicherort senden und die Ordnerstruktur anzeigen. Es ist normalerweise in etwa so:/your_path_to_work_location/SAS_work {random_string} _hostname. Wenn Sie den physischen Speicherort Ihres aktuellen Arbeitsordners anzeigen möchten, fragen Sie die globale Makrovariable SASWORKLOCATION ab, indem Sie folgenden Code ausführen: '% PUT SASWORKLOCATION = & SASWORKLOCATION'; –