CAS

Daten zwischen zwei CAS-Sitzungen teilen

Simon 30/04/2021 1 views

In der SAS© Viya-Architektur ist die Speicher- und Sitzungsverwaltung ein Schlüsselkonzept. Es kommt häufig vor, dass ein Benutzer Daten lädt oder eine Bibliothek (caslib) in einer Sitzung (nennen wir sie Sitzung A) erstellt und dann von einer neuen Sitzung aus darauf zugreifen möchte (Sitzung B).

Ein direkter Versuch, die vorhandene Bibliothek in der neuen Sitzung zuzuweisen, führt jedoch oft nicht dazu, dass die erwarteten Daten angezeigt werden. Warum gibt es diese Trennung und wie kann man sie umgehen?

Illustration

Den Geltungsbereich (Scope) verstehen

Der Kern des Problems liegt im Geltungsbereich Ihrer Caslib und der darin enthaltenen Tabellen. Standardmäßig besitzt eine Caslib oder eine in den Speicher geladene Tabelle ohne spezielle Konfiguration oft einen Sitzungsgeltungsbereich (session scope).

  • Sitzungsgeltungsbereich: Die Daten sind privat. Sie "gehören" ausschließlich der Sitzung, die sie erstellt hat (Sitzung A). Sitzung B kann sie weder sehen noch verwenden, selbst wenn Sie versuchen, die Bibliothek neu zu definieren.

  • Globaler Geltungsbereich: Die Daten sind geteilt. Sie sind für alle Sitzungen zugänglich, die über ausreichende Rechte für den Zugriff auf den CAS-Server verfügen.

Die Lösung: Die Promotion

Es ist nicht möglich, Sitzung B einfach mit dem privaten Speicherbereich von Sitzung A zu "verbinden". Um die Daten für Sitzung B (und andere) zugänglich zu machen, müssen Sie den Status Ihrer Daten ändern.

Die Methode besteht darin, die Aktion promote zu verwenden.

Wie geht man vor?

Anstatt zu versuchen, die gesamte Bibliothek neu zuzuweisen, müssen Sie explizit die spezifischen Tabellen, die Sie teilen möchten, hochpromoten.

  1. In Sitzung A (Eigentümer): Verwenden Sie die Promotionsaktion für Ihre Tabelle. Dadurch wird die Tabelle vom lokalen Speicher der Sitzung in den globalen Speicher des Servers verschoben.

  2. In Sitzung B: Sobald die Tabelle in den globalen Geltungsbereich (global scope) überführt wurde, ist sie sofort sichtbar und zugänglich, ohne dass die Daten von der Festplatte neu geladen werden müssen.

Wenn Sie Ihre Tabellen von einer neuen Sitzung aus nicht sehen können, versuchen Sie nicht, die Bibliotheksdefinition zu "reparieren". Stellen Sie sich die Frage nach dem Geltungsbereich Ihrer Daten.

  • Wenn die Tabelle im Sitzungsgeltungsbereich (session scope) ist, ist sie für andere unsichtbar.

  • Um sie zu teilen, müssen Sie sie in den globalen Geltungsbereich (promote) hochpromoten.