Integracja Oracle Analytics z Oracle Cloud Infrastructure Functions

Aby można było używać tych funkcji w przepływach danych do przekształcania danych, należy zintegrować Oracle Analytics z funkcjami Oracle Cloud Infrastructure (OCI).

Używanie funkcji OCI w Oracle Analytics - informacje podstawowe

Dane w Oracle Analytics można przekształcać, używając funkcji utworzonych OCI. Na przykład można używać funkcji konwersji językowej w celu przekształcania tekstu angielskiego na hiszpański lub niemiecki.

Najpierw należy zarejestrować funkcje OCI w Oracle Analytics. Dopiero wtedy każdy użytkownik Oracle Analytics z uprawnieniami "Administrator usługi BI" lub "Autor zawartości DV" może używać tych funkcji w przepływach danych.

Konfigurowanie funkcji OCI do użycia w Oracle Analytics - informacje podstawowe

W konsoli OCI można tworzyć funkcje, a następnie używać ich do transformacji danych w przepływach danych w Oracle Analytics.

Rejestrowanie funkcji OCI w Oracle Analytics - informacje podstawowe

Jeśli podczas rejestrowania funkcji OCI Oracle Analytics jest ona w oknie dialogowym "Wybór funkcji" przyszarzała, to należy sprawdzić, czy została skonfigurowana z użyciem taga oac-compatible i wywołana z właściwą wartością funcMode.
Opis "GUID-6FE05B2C-5352-4953-998F-D967B6BA1891-default.png" znajduje się poniżej
.png"

Konfigurowanie funkcji OCI do użycia w Oracle Analytics - informacje podstawowe

Funkcje OCI, które mają być używane w Oracle Analytics, muszą mieć tag oac-compatible, a kod funkcji musi zawierać zmienną funcMode. W konsoli OCI należy skonfigurować następujące ustawienia:

  • oac-compatible - Dodać do funkcji tag swobodny o nazwie oac-compatible i ustawić wartość true.Opis "GUID-6DDD2A98-7F8D-45D7-9110-9643C2128A84-default.png" znajduje się poniżej
    .png"
  • funcMode - Zawrzeć zmienną funcMode w kodzie funkcji. Oracle Analytics wyśle żądanie zarejestrowania funkcji OCI z ustawieniem funcMode=describeFunction oraz żądanie wywołania funkcji OCI z ustawieniem funcMode=executeFunction. Funkcja procedury obsługi w skrypcie func.py powinna działać w trybie describeFunction lub executeFunction. Może to zostać wykonane na podstawie wartości zmiennej wejściowej funcMode z żądania, jak pokazano poniżej.

    Opis "GUID-0C335709-DEDC-4655-8A29-F544608DA8B3-default.png" znajduje się poniżej
    .png"

    Poniżej przedstawiono format żądania i odpowiedzi funkcji OCI dla przykładu Word Count w języku python.

    funcMode = describeFunction

    { "funcMode": "describeFunction"}

    Jeśli funcMode w żądaniu równa się describeFunction, funkcja powinna zwrócić swoją definicję ze statusem (returnCode i errorMessage), wyniki (nazwa, dataType kolumny wyjściowej), parametry (nazwa, opis, typ itd. parametru wejściowego), bucketName itd. w postaci obiektu JSON w następującym formacie (przykład Word Count):

    funcDefinition = {
        "status": {
            "returnCode": 0,
            "errorMessage": ""
        },
        "funcDescription": {
            "outputs": [
                {"name": "word_count", "dataType": "integer"}
            ],
            "parameters": [
                {"name": "textColumn", "displayName": "Text Column",
                 "description": "Choose column to count words", "required": True,
                 "value": {"type": "column"}}
            ],
            "bucketName": "bucket-OCI-FAAS",
            "isOutputJoinableWithInput": True
        }
    }

    W skrypcie func.py należy dodać poniższy kod, aby była zwracana funcDefinition, gdy funcMode w żądaniu równa się describeFunction.

    def handler(ctx, data: io.BytesIO = None):
        response_data = ""
        try:
            body = json.loads(data.getvalue())
            funcMode = body.get("funcMode")
            if funcMode == 'describeFunction':
               response_data = json.dumps(funcDefinition)
        except (Exception, ValueError) as ex:
            response_data = json.dumps(
                {"error": "{0}".format(str(ex))})
        return response.Response(
            ctx, response_data,
            headers={"Content-Type": "application/json"}
        )

    funcMode = executeFunction - Jeśli funcMode równa się executeFunction, to powinien zostać wykonany faktyczny algorytm funkcji i odpowiedź powinna zostać odesłana do Oracle Analytics z wynikiem określonym przez output. Jeśli zarejestrowana funkcja zostanie wywołana z przepływu danych w Oracle Analytics, to obiekt żądania będzie miał następujący format: nazwa kolumny określona w args, input(bucketName, fileName, fileExtension, fileName, method i rowID) i output(bucketName, fileName i fileExtension).

    {
        "args":
        {
            "textColumn": "REVIEW"
        },
        "funcMode": "executeFunction",
        "input":
        {
            "bucketName": "bucket-OCI-FAAS",
            "fileExtension": ".csv",
            "fileName": "oac-fn-e99cd4fddb3844be89c7af6ea4bbeb76-input",
            "method": "csv",
            "rowID": "row_id"
        },
        "output":
        {
            "bucketName": "bucket-OCI-FAAS",
            "fileExtension": ".csv",
            "fileName": "oac-fn-e99cd4fddb3844be89c7af6ea4bbeb76-output"
        }
    }

Tworzenie funkcji w OCI - informacje podstawowe

Funkcje można tworzyć, używając konsoli OCI, wiersza polecenia (Fn Project CLI) lub API. Na przykład w konsoli OCI kliknąć Usługi dla twórców aplikacji, następnie Funkcje, po czym - aby utworzyć aplikacje i funkcje - postępować zgodnie z wyświetlanymi instrukcjami. Szczegóły są dostępne na stronie "Creating Functions" w dokumentacji OCI. Tworząc funkcje po raz pierwszy, dobrze jest przejść przez cały przykład Creating, Deploying, and Invoking a Helloworld Function. Każda funkcja, która ma być używana w Oracle Analytics, musi zawierać tag swobodny oac-compatible=true (zob. Konfigurowanie funkcji OCI do użycia w Oracle Analytics - informacje podstawowe powyżej).

Wskazówki dotyczące tworzenia funkcji w konsoli OCI

  • Włączyć dzienniki - Domyślnie dzienniki są wyłączone dla funkcji. Aby włączyć dzienniki dla funkcji, należy na stronie Aplikacje kliknąć Dzienniki, po czym włączyć dziennik określony w polu Nazwa dziennika. W obszarze Zasoby można teraz wybrać opcję Eksploracja dziennika, po czym - aby usunąć błędy i zdiagnozować problemy z funkcją - drążyć wpisy dziennika.
  • Zawrzeć zależności - Należy zawrzeć zależne pakiety w pliku requirements.txt dla funkcji.
  • Przestrzegać reguł wcięć - Pisząc funkcje Python, należy przestrzegać reguł wcięć w kodzie Python.
  • Korzystać z komunikatów o błędach odpowiedzi funkcji - Należy korzystać ze szczegółów błędów wyświetlanych na stronie "Przepływ danych" w celu zdiagnozowania problemów.
  • Najpierw przetestować funkcje lokalnie - Przed utworzeniem funkcji w OCI należy ją przetestować lokalnie w swoim środowisku programistycznym, aby upewnić się, że funkcja jest poprawna pod względem składni i logiki.
  • Przetestować funkcje w OCI - Przed zintegrowaniem funkcji z Oracle Analytics należy się upewnić, że można je pomyślnie wdrażać i wywoływać w OCI jako funkcje autonomiczne.
  • Zwiększyć limit czasu - Domyślnie dla funkcji jest ustawiony limit czasu równy 30 sekund. Jeśli trzeba, można na stronie "Edycja funkcji" konsoli OCI zwiększyć limit czasu (na przykład na 300 sekund).
  • Zwiększyć pamięć - Domyślnie dla funkcji jest ustawiony limit pamięci równy 1024 MB. Jeśli trzeba, można na stronie "Edycja funkcji" konsoli OCI zwiększyć limit pamięci.
  • Zoptymalizować miejsce - Nieużywane pliki należy od razu usunąć.
  • Pamiętać o opóźnieniach sieciowych - Należy pamiętać, że opóźnienia sieciowe mogą się przyczynić do niewielkiego opóźnienia ogólnego przetwarzania.

Polityki wymagane do integracji usługi OCI Functions z Oracle Analytics

Aby zintegrować Oracle Analytics z usługą OCI Functions, należy się upewnić, że istnieją wymagane polityki zabezpieczeń.

Użytkownik, określany w połączeniu między Oracle Analytics Cloud a używaną dzierżawą OCI, musi mieć w odniesieniu do przewidzianych do użycia zasobów OCI uprawnienia zezwalające na odczyt, zapis i usuwanie. Należy się upewnić, że użytkownik OCI należy do grupy użytkowników, dla której zostały ustawione poniższe minimalne polityki zabezpieczeń OCI. Łącząc się z Oracle Analytics z dzierżawą OCI, można użyć albo klucza API, albo obiektu "principal" zasobu.

Uwaga:

W przypadku obiektu "principal" zasobu, aby uwzględnić w przedziale wszystkie instancje Analytics, należy użyć: {request.principal.type='analyticsinstance', request.principal.compartment.id='<compartmentA_ocid>'} zamiast {request.principal.id='<analytics_instance_ocid>'}.
Założenia systemowe dot. kluczy API Założenia systemowe dla obiektu "principal" zasobu
Allow group <group_name> to use functions-family in compartment <compartment_name> Allow any-user to use functions-family in compartment <compartment_name> where all {request.principal.id='<analytics_instance_ocid>'}
Allow group <group_name> to read buckets in compartment <compartment_name> Allow any-user to read buckets in compartment <compartment_name> where all {request.principal.id='<analytics_instance_ocid>'}
Allow group <group_name> to manage objects in compartment <compartment_name> where target.bucket.name='<staging_bucket_name>' Allow any-user to manage objects in compartment <compartment_name> where all {request.principal.id='<analytics_instance_ocid>', target.bucket.name='<staging_bucket_name>'}
Allow group <group_name> to read objectstorage-namespaces in tenancy Allow any-user to read objectstorage-namespaces in tenancy where all {request.principal.id='<analytics_instance_ocid>'}
Polityka grupy dynamicznej Opis
Allow dynamic-group <dynamic_group> to manage objects in compartment <compartment_name> where target.bucket.name='<staging_bucket_name>' Zapewnia grupie dynamicznej dostęp do koszyka gromadzenia.

Przykładowa reguła uzgadniania: <dynamic_group>.{resource.type = 'fnfunc', resource.compartment.id = '<compartment_ocid>'}, gdzie <compartment_ocid> to ID Oracle Cloud przedziału zawierającego funkcje.

Typowy proces Workflow transformacji danych za pomocą funkcji OCI

Aby przekształcić dane w Oracle Analytics za pomocą funkcji OCI, należy wykonać w podanej kolejności poniższe zadania wysokiego poziomu.

Zadanie Opis Więcej informacji

Utworzyć funkcje w OCI (wymaga uprawnień programisty funkcji)

Należy w swojej dzierżawie OCI utworzyć funkcje i upewnić się, że spełniają one wymagania wstępne dla Oracle Analytics.

Konfigurowanie funkcji OCI do użycia w Oracle Analytics - informacje podstawowe

Przypisywanie założeń systemowych (polityk) OCI Przypisywanie wymaganych założeń systemowych OCI, niezbędnych do łączenia się za pomocą klucza API lub obiektu "principal" zasobu. Polityki wymagane do integracji usługi OCI Functions z Oracle Analytics
Połączyć Oracle Analytics ze swoją dzierżawą OCI (wymaga uprawnień administratora lub autora DV) Należy w Oracle Analytics utworzyć połączenie ze swoją dzierżawą OCI.

Tworzenie połączenia z dzierżawą Oracle Cloud Infrastructure

Zarejestrować funkcje OCI w Oracle Analytics (wymaga uprawnień administratora lub autora DV) Należy w Oracle Analytics zarejestrować swoje funkcje OCI, aby można było je wywoływać z przepływów danych.

Rejestrowanie funkcji OCI w Oracle Analytics

Przekształcić dane, używając funkcji OCI (wymaga uprawnień administratora lub autora DV) Należy utworzyć przepływ danych i użyć w nim etapu Stosowanie skryptu niestandardowego w celu wywołania funkcji OCI.

Transformacja danych za pomocą funkcji OCI

Rejestrowanie funkcji OCI w Oracle Analytics

Funkcje OCI, aby można było ich używać w przepływach danych do transformacji danych, trzeba zarejestrować w Oracle Analytics. Na przykład można zarejestrować funkcję w celu konwersji językowej umożliwiającą analitykom danych przekształcanie tekstu angielskiego na hiszpański lub niemiecki.

  1. Na stronie startowej Oracle Analytics kliknąć kolejno menu strony, Zarejestruj model/funkcję i Funkcje OCI.
  2. W oknie dialogowym "Rejestrowanie funkcji niestandardowej" wybrać połączenie z tą dzierżawą OCI, w której znajdują się funkcje.
  3. W oknie dialogowym Wybór aplikacji wybrać aplikację zawierającą funkcje OCI.
    Nie mając pewności, należy się zwrócić do osoby, która utworzyła funkcje w OCI.
  4. W oknie dialogowym "Wybór funkcji" wybrać funkcję, po czym kliknąć Zarejestruj.
    Jeśli funkcja, której chcemy użyć, jest przyszarzała, należy się upewnić u administratora, czy została ona skonfigurowana dla Oracle Analytics. Zob. Konfigurowanie funkcji OCI do użycia w Oracle Analytics - informacje podstawowe.
Zarejestrowanych funkcji OCI można używać w przepływach danych do transformacji danych. To, które funkcje zostały zarejestrowane, można sprawdzić, wyświetlając zarejestrowane funkcje na karcie "Skrypty" strony "Uczenie maszynowe" (na stronie startowej kliknąć Nawigator Ikona "Nawigator" umożliwiająca wyświetlanie obszaru "Nawigator", a następnie Uczenie maszynowe i Skrypty).