Uzyskiwanie dostępu do obiektów w repozytorium IBM SPSS Collaboration and Deployment Services Repository

Jeśli masz licencję na IBM® SPSS Collaboration and Deployment Services Repository, możesz zapisywać i pobierać obiekty w repozytorium za pomocą komend skryptowych. Repozytorium służy do zarządzania cyklem życia modeli eksploracji danych i powiązanych z nimi obiektów predykcyjnych w kontekście aplikacji, narzędzi i rozwiązań korporacyjnych.

Nawiązywanie połączenia z repozytorium IBM SPSS Collaboration and Deployment Services Repository

Aby uzyskać dostęp do repozytorium, należy najpierw skonfigurować poprawne połączenie z repozytorium. Czynność tę wykonuje się za pośrednictwem menu Narzędzia w interfejsu użytkownika programu SPSS Modeler, albo z wiersza komend. Aby uzyskać więcej informacji, zobacz Argumenty połączenia z repozytorium IBM SPSS Collaboration and Deployment Services Repository.

Uzyskiwanie dostępu do repozytorium

Dostęp do repozytorium można uzyskać za pośrednictwem obiektu sesji, na przykład:

repo = modeler.script.session().getRepository()

Pobieranie obiektów z repozytorium

W skrypcie można używać funkcji retrieve*, by uzyskiwać dostęp do różnych obiektów, w tym strumieni, modeli, wyników i węzłów. W poniższej tabeli przedstawiono zestawienie funkcji służących do pobierania obiektów.

Tabela 1. Funkcje skryptowe do pobierania obiektów
Typ obiektu Funkcja repozytorium
Strumień repo.retrieveStream(String path, String version, String label, Boolean autoManage)
Model repo.retrieveModel(String path, String version, String label, Boolean autoManage)
Raport repo.retrieveDocument(String path, String version, String label, Boolean autoManage)
Węzeł repo.retrieveProcessor(String path, String version, String label, ProcessorDiagram diagram)

Można na przykład pobrać strumień z repozytorium, korzystając z następującej funkcji:

stream = repo.retrieveStream("/projects/retention/risk_score.str", None, "production", True)

Ten przykład pobiera strumień risk_score.str z określonego folderu. Etykieta production wskazuje wersję strumienia, która ma być pobrana, a ostatni parametr określa, że SPSS Modeler ma zarządzać strumieniem (powoduje to na przykład, że strumień będzie widoczny na karcie Strumienie, o ile widoczny jest interfejs użytkownika programu SPSS Modeler). Alternatywą jest użycie konkretnej wersji bez etykiety:

stream = repo.retrieveStream("/projects/retention/risk_score.str", "0:2015-10-12 14:15:41.281", None, True)
Uwaga: Jeśli i parametr version, i label będą równe None, to zwrócona zostanie ostatnia wersja.

Zapisywanie obiektów w repozytorium

Do zapisywania obiektów w repozytorium można w skryptach używać funkcji store*. W poniższej tabeli przedstawiono zestawienie funkcji służących do zapisywania obiektów.

Tabela 2. Funkcje skryptowe do zapisywania obiektów
Typ obiektu Funkcja repozytorium
Strumień repo.storeStream(ProcessorStream stream, String path, String label)
Model repo.storeModel(ModelOutput modelOutput, String path, String label)
Raport repo.storeDocument(DocumentOutput documentOutput, String path, String label)
Węzeł repo.storeProcessor(Processor node, String path, String label)

Na przykład za pomocą poniższego wywołania można zapisać nową wersję strumienia risk_score.str:

versionId = repo.storeStream(stream, "/projects/retention/risk_score.str", "test")

Ten przykład zapisuje nową wersję strumienia, kojarzy z nią etykietę "test" i zwraca znacznik nowo utworzonej wersji.

Uwaga: Jeśli nie chcesz kojarzyć etykiety z nową wersją, przekaż None jako etykietę.

Zarządzanie folderami w repozytorium

Korzystając z folderów w repozytorium, można organizować obiekty w logiczne grupy i lepiej uwidocznić relacje między obiektami. Do tworzenia folderów służy funkcja createFolder(), co ilustruje poniższy przykład:

newpath = repo.createFolder("/projects", "cross-sell")

Ten przykład tworzy nowy folder o nazwie "cross-sell" w folderze "/projects". Funkcja zwraca pełną ścieżkę do nowego folderu.

Do zmieniania nazwy folderu służy funkcja renameFolder():

repo.renameFolder("/projects/cross-sell", "cross-sell-Q1")

Pierwszy parametr jest pełną ścieżką do folderu, którego nazwa ma być zmieniona, a drugi jest nową nazwą folderu.

Do usuwania pustego folderu służy funkcja deleteFolder():

repo.deleteFolder("/projects/cross-sell")

Blokowanie i odblokowywanie obiektów

Za pomocą skryptu można zablokować obiekt, aby uniemożliwić innym użytkownikom aktualizowanie jego istniejących wersji lub tworzenie nowych. Istnieje również możliwość odblokowania obiektu, który został zablokowany.

Składnia do blokowania i odblokowywania obiektu:

repo.lockFile(REPOSITORY_PATH)
repo.lockFile(URI)

repo.unlockFile(REPOSITORY_PATH)
repo.unlockFile(URI)

Podobnie jak w przypadku zapisywania i pobierania obiektów, REPOSITORY_PATH wskazuje lokalizację obiektu w repozytorium. Ścieżka musi być ujęta w cudzysłów i zawierać ukośniki jako separatory. Nie jest rozróżniana wielkość liter.

repo.lockFile("/myfolder/Stream1.str")
repo.unlockFile("/myfolder/Stream1.str")

Aby wskazać lokalizację obiektu, można także użyć identyfikatora URI (Uniform Resource Identifier) zamiast ścieżki repozytorium. Identyfikator URI musi zawierać przedrostek spsscr: i być całkowicie ujęty w cudzysłów. Dozwolone są tylko ukośniki jako separatory ścieżki; spacje muszą być zakodowane. Oznacza to, że należy użyć komendy %20 zamiast spacji w ścieżce. Identyfikator URI nie rozróżnia wielkości liter. Kilka przykładów:

repo.lockFile("spsscr:///myfolder/Stream1.str")
repo.unlockFile("spsscr:///myfolder/Stream1.str")

Należy pamiętać, że blokowanie obiektów ma zastosowanie do wszystkich wersji obiektu — nie można blokować lub odblokowywać poszczególnych wersji.