# Pierwsze kroki z połączeniami analitycznymi

Utwórz połączenie analityczne, aby ładować i generować dane z modeli wdrożonych z Qlik Cloud lub z różnych narzędzi do uczenia maszynowego innych firm. Modele te zazwyczaj udostępniają punkty końcowe interfejsu API oparte na protokole REST. Przed utworzeniem i użyciem połączenia należy utworzyć i wdrożyć żądane modele uczenia maszynowego lub uzyskać do nich dostęp.

Oprócz Qlik Predict istnieje kilka platform innych producentów, na których można tworzyć, uczyć i wdrażać modele uczenia maszynowego, np.:

* Azure ML

* Amazon SageMaker

[Trenowanie modelu klasyfikacji bez kodu w języku AutoML w Azure Machine Learning studio](https://docs.microsoft.com/en-gb/azure/machine-learning/tutorial-first-experiment-automated-ml)

[Rozpoczęcie pracy z Amazon SageMaker](https://docs.aws.amazon.com/sagemaker/latest/dg/gs.html)

## Włączanie połączeń analitycznych dla punktów końcowych uczenia maszynowego

Punkty końcowe uczenia maszynowego są domyślnie wyłączone.

Administratorzy dzierżawy mogą włączyć punkty końcowe uczenia maszynowego w Administrowanie, w obszarze Sterowanie funkcją w oknie Ustawienia.

## Używanie połączeń analitycznych i składni rozszerzeń po stronie serwera

Połączenia analityczne mogą wysyłać dane do Qlik Predict lub zewnętrznych uwidocznionych punktów końcowych uczenia maszynowego na potrzeby obliczeń. Dane zwrócone z tych połączeń można załadować do aplikacji Qlik Sense.

Skrypty ładowania danych i wyrażenia wykresu to dwa sposoby, w jakie połączenia analityczne można dodać do aplikacji Qlik Sense. Zarówno funkcje, jak i parametry rozszerzenia po stronie serwera (SSE) są przetwarzane w Qlik Sense, a następnie konwertowane na żądania REST, które są wysyłane do modeli uczenia maszynowego. Skrypty ładowania SSE i wyrażenia wykresu muszą przestrzegać składni SSE. Zob. [Składnia rozszerzeń po stronie serwera](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/sse-syntax.htm).

### Skrypt ładowania danych

* Możesz zwrócić tabelę z wywołania SSE i załadować dane z połączeń analitycznych za pomocą instrukcji LOAD ... EXTENSION w skrypcie ładowania danych Qlik Sense. Do modelu można wysłać pojedynczą tabelę, a zwrócona zostanie pojedyncza tabela danych.

* Kiedy używa się funkcji SSE w skrypcie ładowania danych Qlik Sense (oprócz instrukcji LOAD ... EXTENSION) kardynalność jest zachowywana i zwracana jest pojedyncza kolumna.

* Wywołania funkcji SSE z dowolnych innych instrukcji ładowania, na przykład Load ... From ..., obsługują tylko typy funkcji skalarnych i agregujących. Oznacza to, że dane zawierające n wierszy spowodują n wywołań modelu, chyba że agregujesz dane dające jedno wywołanie.

* Typy danych są automatycznie wykrywane w połączeniach analitycznych. Jeśli dane nie zawierają żadnych wartości liczbowych, a zawierają co najmniej jeden ciąg znaków inny niż NULL, wówczas takie pole jest traktowane jako tekstowe. W każdym innym przypadku jest traktowane jako liczbowe. Typ danych można wymusić, umieszczając nazwę pola w funkcji String() lub Mixed(). String() wymusza, aby pole było wartością tekstową. Jeśli pole jest liczbowe, wówczas wyodrębniana jest część tekstowa wartości podwójnej — nie jest wykonywane żadne przekształcenie. Mixed() wymusza, aby pole było wartością podwójną.

### Wyrażenia wykresu

* Wyrażenia wykresu nie mogą korzystać z tabeli zwróconej z wywołania funkcji SSE. Gdy używasz funkcji SSE w wyrażeniu wykresu, liczebność jest zachowywana i tylko pierwsza zwrócona kolumna będzie używana przez Qlik Sense.

### Odwoływanie się do przestrzeni połączenia danych

Jeśli publikujesz aplikację lub skrypt w przestrzeni zarządzanej lub jeśli chcesz, aby żądania SSE odnosiły się do połączenia w bieżącej przestrzeni, użyj składni względnej. Zamiast tego możesz skonfigurować żądanie z odniesieniem do określonej nazwy przestrzeni. Pojęcia te są ważne zarówno w skrypcie ładowania, jak i wyrażeniach wykresu.

Aby uzyskać więcej informacji na temat stosowania składni uwzględniającej przestrzenie, zobacz:

* [Łączenie ze źródłami danych w skryptach ładowania](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/connect-data-sources-data-load-editor.htm)

* [Źródła danych dla aplikacji w przestrzeniach zarządzanych](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Spaces/app-data-managed-spaces.htm)

#### Przykład 1: składnia względna przestrzeni w skrypcie ładowania

Poniższy przykład prezentuje połączenie z połączeniem analitycznym w skrypcie ładowania. Kod został zmodyfikowany tak, aby wskazywał połączenie w bieżącej przestrzeni aplikacji lub skryptu. W tym celu dodaje się dwukropek na początku nazwy połączenia (w tym przypadku „`:Amazon_Titan_(Amazon_Bedrock)`”). Bez tego dwukropka odniesienie wskazywałoby na połączenie w przestrzeni prywatnej użytkownika dokonującego przeładowania (lub właściciela harmonogramu przeładowania).

```
EXTENSION endpoints.ScriptEval('{"RequestType":"endpoint", "endpoint":{"connectionname":":Amazon_Titan_(Amazon_Bedrock)"}}', QuestionsTable{Question_ID,Question});
```

Tej składni uwzględniającej przestrzeń można użyć przed opublikowaniem aplikacji lub skryptu w przestrzeni zarządzanej, która zawiera również połączenie analityczne.

#### Przykład 2: składnia względna przestrzeni w wyrażeniu wykresu

Poniższy przykład to wyrażenie wykresu zawierające odniesienie do połączenia w bieżącej przestrzeni. W tym celu dodaje się dwukropek na początku nazwy połączenia (w tym przypadku „`:Amazon_Titan_(Amazon_Bedrock)`”). Bez tego dwukropka odniesienie wskazywałoby na połączenie w przestrzeni prywatnej użytkownika dokonującego przeładowania (lub właściciela harmonogramu przeładowania).

```
if(vQuestion <> '', endpoints.scriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":":Amazon_Titan_(Amazon_Bedrock)","column":"outputText"}}',vQuestion))
```

Tej składni uwzględniającej przestrzeń można użyć przed opublikowaniem aplikacji lub skryptu w przestrzeni zarządzanej, która zawiera również połączenie analityczne.

#### Przykład 3: składnia przestrzeni wpisana bezpośrednio w skrypcie ładowania

Jeśli chcesz, aby odniesienie do połączenia analitycznego działało tylko w określonej przestrzeni, możesz zapisać wyrażenie tak, aby zawierało bezpośrednie odniesienie do przestrzeni. Jeśli nie podasz nazwy przestrzeni (a także pominiesz dwukropek dodany w przykładach 1 i 2), składnia będzie zapisana bezpośrednio i będzie odnosić się do połączenia w przestrzeni prywatnej użytkownika uruchamiającego przeładowanie (lub właściciela harmonogramu przeładowania).

Jeśli do dodania instrukcji ładowania użyjesz kreatora Wybierz dane, będzie to składnia używana automatycznie.

```
EXTENSION endpoints.ScriptEval('{"RequestType":"endpoint", "endpoint":{"connectionname":"My_Shared_Space:Amazon_Titan_(Amazon_Bedrock)"}}', QuestionsTable{Question_ID,Question});
```

W tym przypadku odniesienie dotyczy połączenia w przestrzeni o nazwie My\_Shared\_Space.

#### Przykład 4: składnia przestrzeni zapisana bezpośrednio w wyrażeniu wykresu

Ten przykład jest podobny do przykładu 3. Jeśli nie podasz nazwy przestrzeni (a także pominiesz dwukropek dodany w przykładach 1 i 2), składnia będzie zapisana bezpośrednio i będzie odnosić się do połączenia w przestrzeni prywatnej użytkownika uruchamiającego przeładowanie (lub właściciela harmonogramu przeładowania).

```
if(vQuestion <> '', endpoints.scriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"My_Shared_Space:Amazon_Titan_(Amazon_Bedrock)","column":"outputText"}}',vQuestion))
```

W tym przypadku odniesienie dotyczy połączenia w przestrzeni o nazwie My\_Shared\_Space.