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
Konfigurowanie funkcji OCI do użycia w Oracle Analytics - informacje podstawowe
Typowy proces Workflow transformacji danych za pomocą funkcji OCI
Tworzenie połączenia z dzierżawą Oracle Cloud Infrastructure
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.
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
.
.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
i ustawić wartość true
.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.
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
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.
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. | |
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. |
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.