Integraţi Oracle Analytics cu Oracle Cloud Infrastructure (OCI) Functions, pentru a le putea utiliza în fluxuri de date pentru a transforma date.
Puteţi să transformaţi date în Oracle Analytics utilizând funcţiile create în OCI. De exemplu, puteţi utiliza o funcţie de conversie a limbii, pentru a converti textul din engleză în spaniolă sau germană.
Mai întâi înregistraţi funcţiile OCI în Oracle Analytics şi apoi orice utilizator Oracle Analytics cu privilegii de administrator BI Service sau Autor conţinut DV le poate utiliza în funcţii de date.
Creaţi funcţii în OCI Console pentru a le putea utiliza pentru a transforma datele în fluxuri de date Oracle Analytics.
Despre înregistrarea funcţiilor OCI în Oracle Analytics
Când înregistraţi o funcţie OCI în Oracle Analytics, dacă este estompată în dialogul Selectaţi o funcţie, verificaţi dacă este configurată cu tagul oac-compatible
şi invocată cu valoarea funcMode
corectă.
.png
Despre configurarea funcţiilor OCI care vor fi utilizate în Oracle Analytics
Funcţiile OCI pe care doriţi să le utilizaţi în Oracle Analytics trebuie să aibă un tag oac-compatible
şi codul funcţiei trebuie să includă variabila funcMode
. Configuraţi aceste setări în OCI Console:
oac-compatible
şi setaţi valoarea la Adevărat
.funcMode
în codul funcţiei dvs. Oracle Analytics
trimite o cerere pentru înregistrarea unei funcţii OCI cu funcMode=describeFunction
şi o cerere pentru invocarea unei funcţii OCI cu funcMode=executeFunction
. Funcţia rutinei din func.py trebuie să funcţioneze în modul describeFunction sau în modul executeFunction. Acest lucru poate fi obţinut în funcţie de valoarea variabilei funcMode
de intrare din cerere, cum se arată mai jos.
Iată formatul cererii şi răspunsului pentru funcţiile OCI pentru un exemplu de număr de cuvinte în Python.
funcMode = describeFunction
{ "funcMode": "describeFunction"}
Când funcMode din cerere este 'describeFunction', funcţia trebuie să returneze definiţia funcţiei cu starea (returnCode şi errorMessage), rezultatele (numele, tipul de date pentru coloana de rezultate), parametrii (nume, descriere, tip etc. pentru parametrul de intrare), bucketName etc. ca obiect JSON în următorul format (exemplu de număr de cuvinte):
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 } }
Adăugaţi următorul cod în func.py pentru a returna funcDefinition când funcMode din cerere este '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 - Când funcMode este 'executeFunction', trebuie executată logica reală a funcţiei şi răspunsul trebuie trimis înapoi către Oracle Analytics cu rezultatul. Când funcţia înregistrată este invocată din fluxul de date din Oracle Analytics, obiectul cererii va avea următorul format cu numele coloanei în argumente: input(bucketName, fileName, fileExtension, fileName, method & rowID) şi output(bucketName, fileName & 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" } }
Despre crearea funcţiilor în OCI
Puteţi să creaţi funcţii utilizând OCI Console, linia de comandă (Fn Project CLI) sau API-ul. De exemplu, în OCI Console, faceţi clic pe Servicii pentru dezvoltatori, apoi pe Funcţii şi urmaţi instrucţiunile de pe ecran pentru a crea aplicaţii şi una sau mai multe funcţii. Pentru detalii, consultaţi Crearea funcţiilor în documentaţia OCI. Dacă este prima dată când creaţi funcţii, urmaţi paşii din exemplul complet Crearea, implementarea şi invocarea unei funcţii Helloworld. Toate funcţiile pe care doriţi să le utilizaţi în Oracle Analytics trebuie să includă tagul oac-compatible=true
în format liber (consultaţi Despre configurarea funcţiilor OCI care vor fi utilizate în Oracle Analytics de mai sus).
Sugestii despre crearea funcţiilor în OCI Console
Pentru a integra Oracle Analytics cu OCI Functions, asiguraţi-vă că aveţi politicile de securitate obligatorii.
Utilizatorul OCI pe care îl specificaţi în conexiunea dintre Oracle Analytics Cloud şi tenancy-ul dvs. OCI trebuie să aibă permisiuni de citire, scriere şi ştergere în compartimentul care conţine resursele OCI pe care doriţi să le utilizaţi. Verificaţi dacă utilizatorul OCI aparţine unui grup de utilizatori cu următoarele politici de securitate de nivel minim pentru OCI. Când vă conectaţi la un tenancy OCI din Oracle Analytics, puteţi utiliza o cheie API OCI sau un responsabil cu resursele.
Notă:
În cazul responsabilului cu resursele, pentru a include toate instanţele Analytics într-un compartiment, specificaţi:{request.principal.type='analyticsinstance', request.principal.compartment.id='<compartmentA_ocid>'}
în loc de {request.principal.id='<analytics_instance_ocid>'}
.Politici pentru chei API | Politici privind responsabilul cu resursele |
---|---|
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>'} |
Politică pentru grup dinamic | Descriere |
---|---|
Allow dynamic-group <dynamic_group> to manage objects in compartment <compartment_name> where target.bucket.name='<staging_bucket_name>' |
Oferă acces la un bucket temporar pentru grupul dinamic. |
Exemplu de regulă de asociere: <dynamic_group>.{resource.type = 'fnfunc', resource.compartment.id = '<compartment_ocid>'}
, unde <compartment_ocid>
este ID-ul Oracle Cloud al compartimentului care conţine funcţiile.
Efectuaţi aceste sarcini generale în ordinea listată mai jos pentru a transforma datele din Oracle Analytics utilizând funcţii OCI.
Sarcină | Descriere | Informaţii suplimentare |
---|---|---|
Creaţi funcţii în OCI (sunt necesare privilegii de dezvoltator de funcţii) |
Creaţi-vă funcţiile în tenancy-ul OCI şi asiguraţi-vă că acestea respectă condiţiile preliminare specificate pentru utilizarea cu Oracle Analytics. |
Despre configurarea funcţiilor OCI care vor fi utilizate în Oracle Analytics |
Asignare politici OCI | Verificaţi dacă aveţi politicile OCI necesare pentru conectare cu ajutorul cheii API sau al responsabilului cu resursele. | Politicile obligatorii pentru integrarea OCI Functions cu Oracle Analytics |
Conectaţi Oracle Analytics la tenancy-ul dvs. OCI (necesită privilegii de administrator sau autor DV) | În Oracle Analytics, creaţi o conexiune la tenancy-ul dvs. OCI. |
Crearea unei conexiuni la tenancy-ul Oracle Cloud Infrastructure |
Înregistraţi funcţii OCI în Oracle Analytics (necesită privilegii de administrator sau de autor DV) | În Oracle Analytics, înregistraţi-vă funcţiile OCI pentru a le putea apela din fluxurile de date. | |
Transformaţi-vă datele cu funcţii OCI (necesită privilegii de administrator sau de autor DV) | Creaţi un flux de date şi utilizaţi pasul Aplicare script personalizat pentru a invoca o funcţie OCI. |
Înregistraţi funcţii OCI în Oracle Analytics, pentru a le putea utiliza în fluxuri de date pentru a transforma date. De exemplu, puteţi înregistra o funcţie de conversie a limbii, astfel încât analiştii de date să poată converti text din engleză în spaniolă sau germană.