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.
| 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)
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.
| 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.
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.