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.