Integrarea Oracle Analytics cu Oracle Cloud Infrastructure Functions

Integraţi Oracle Analytics cu Oracle Cloud Infrastructure (OCI) Functions, pentru a le putea utiliza în fluxuri de date pentru a transforma date.

Despre utilizarea funcţiilor OCI în Oracle Analytics

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.

Despre configurarea funcţiilor OCI care vor fi utilizate în Oracle Analytics

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ă.
Urmează descrierea GUID-6FE05B2C-5352-4953-998F-D967B6BA1891-default.png
.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 - Adăugaţi un tag în format liber la funcţia cu numele oac-compatible şi setaţi valoarea la Adevărat.Urmează descrierea GUID-6DDD2A98-7F8D-45D7-9110-9643C2128A84-default.png
    .png
  • funcMode - Includeţi variabila 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.

    Urmează descrierea GUID-0C335709-DEDC-4655-8A29-F544608DA8B3-default.png
    .png

    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

  • Activare jurnale - În mod prestabilit, jurnalele sunt dezactivate pentru funcţii. Pentru a activa jurnalele pentru funcţii, în pagina Aplicaţii, faceţi clic pe Jurnale şi activaţi jurnalul furnizat pentru Nume jurnal. În Resurse, puteţi selecta acum Explorare jurnal şi detalia intrările jurnalului pentru a diagnostica şi rezolva problemele funcţiilor.
  • Includerea dependenţelor - Includeţi pachetele dependente în fişierul requirements.txt pentru funcţie.
  • Respectarea regulilor pentru indentare- Respectaţi regulile de indentare Python când scrieţi cod de programare pentru funcţii Python.
  • Utilizarea erorilor din răspunsul funcţiei - Utilizaţi detaliile erorilor listate pe pagina Flux de date.
  • Testarea funcţiilor mai întâi local - Înainte de a crea funcţia în OCI, testaţi-o local în mediul dvs. de dezvoltare, pentru a vă asigura că sintaxa şi logica funcţiei sunt corecte.
  • Testarea funcţiilor în OCI - Înainte de a integra funcţiile cu Oracle Analytics, verificaţi dacă le puteţi implementa şi invoca cu succes ca funcţii individuale în OCI.
  • Creşterea duratei de expirare - În mod prestabilit, funcţiile expiră după 30 de secunde. Dacă este necesar, creşteţi valoarea setării pentru durata de expirare (de exemplu, modificaţi-o la 300 de secunde) din pagina Editare funcţie din consola OCI.
  • Creşterea memoriei- În mod prestabilit, funcţiile au o limită de memorie de 1024 MB. Dacă este necesar, creşteţi limita de memorie din pagina Editare funcţie din consola OCI.
  • Optimizarea spaţiului - Ştergeţi fişierele neutilizate imediat după utilizare.
  • Ţineţi cont de latenţa reţelei - Reţineţi că latenţa reţelei poate cauza o mică întârziere în procesarea globală.

Politicile obligatorii pentru integrarea OCI Functions cu Oracle Analytics

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.

Fluxul de lucru obişnuit pentru transformarea datelor utilizând funcţii OCI

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.

Înregistrarea funcţiilor OCI în Oracle Analytics

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.

Transformarea datelor cu ajutorul funcţiilor OCI

Înregistrarea funcţiilor OCI în Oracle Analytics

Î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ă.

  1. În Oracle Analytics, pe pagina home, faceţi clic pe meniul paginii, apoi pe Înregistrare model/funcţie şi apoi pe Funcţii OCI.
  2. În dialogul Înregistraţi o funcţie personalizată, selectaţi o conexiune la tenancy-ul OCI în care se află funcţiile dvs.
  3. În dialogul Selectare aplicaţie, selectaţi aplicaţia care conţine funcţiile dvs. OCI.
    Dacă nu ştiţi sigur, întrebaţi persoana care a creat funcţiile în OCI.
  4. În dialogul Selectaţi o funcţie, selectaţi o funcţie, apoi faceţi clic pe Înregistrare.
    Dacă funcţia pe care doriţi s-o utilizaţi este estompată, rugaţi administratorul să verifice dacă este configurată pentru Oracle Analytics. Consultaţi Despre configurarea funcţiilor OCI care vor fi utilizate în Oracle Analytics.
Puteţi utiliza funcţiile OCI înregistrate în fluxuri de date pentru a transforma date. Pentru a verifica ce funcţii sunt înregistrate, puteţi vizualiza funcţiile înregistrate în fila Script-uri a paginii Învăţare automată (din pagina home, faceţi clic pe Navigator Pictograma Navigator, utilizată pentru afişarea Navigatorului, apoi pe Învăţare automată, apoi pe Script-uri).