Integrare Oracle Analytics con le funzioni dell'infrastruttura Oracle Cloud

Integrare Oracle Analytics con le funzioni dell'infrastruttura Oracle Cloud (OCI) in modo da poterle utilizzare nei flussi di dati per trasformare i dati.

Informazioni sull'utilizzo delle funzioni OCI in Oracle Analytics

In Oracle Analytics è possibile trasformare i dati utilizzando le funzioni create in OCI. Ad esempio, è possibile utilizzare una funzione di conversione della lingua per convertire il testo inglese in spagnolo o tedesco.

In primo luogo, registrare le funzioni OCI in Oracle Analytics, quindi qualsiasi utenti di Oracle Analytics con i privilegi di amministratore del servizio BI o autore di contenuti DV può utilizzarli nei flussi di dati.

Informazioni sulla configurazione delle funzioni OCI da utilizzare in Oracle Analytics

Creare funzioni nella console OCI in modo da poterle utilizzare per trasformare nei flussi di dati di Oracle Analytics.

Informazioni sulla registrazione delle funzioni OCI in Oracle Analytics

Quando si registra una funzione OCI in Oracle Analytics, se è disattivata nella finestra di dialogo Selezionare una funzione, verificare che sia stata configurata con la tag oac-compatible e richiamata con il valore corretto della variabile funcMode.
Segue la descrizione di GUID-6FE05B2C-5352-4953-998F-D967B6BA1891-default.png
.png

Informazioni sulla configurazione delle funzioni OCI da utilizzare in Oracle Analytics

Le funzioni OCI che si desidera utilizzare in Oracle Analytics devono avere una tag oac-compatible e il codice della funzione deve includere la variabile funcMode. Nella console OCI configurare le impostazioni riportate di seguito.

  • oac-compatible: aggiungere una tag in formato libero alla funzione denominata oac-compatible e impostare il valore true.Segue la descrizione di GUID-6DDD2A98-7F8D-45D7-9110-9643C2128A84-default.png
    .png
  • funcMode: includere la variabile funcMode nel codice della funzione. Oracle Analytics invia una richiesta per registrare una funzione OCI utilizzando funcMode=describeFunction e una richiesta per richiamare una funzione OCI utilizzando funcMode=executeFunction. La funzione dell'handler in func.py deve essere utilizzata in modalità describeFunction o executeFunction. Questa operazione può essere eseguita in base al valore della variabile di input funcMode della richiesta, come indicato di seguito.

    Segue la descrizione di GUID-0C335709-DEDC-4655-8A29-F544608DA8B3-default.png
    .png

    Di seguito è riportato il formato della richiesta e della risposta delle funzioni OCI per l'esempio relativo al conteggio delle parole in Python.

    funcMode = describeFunction

    { "funcMode": "describeFunction"}

    Quando funcMode nella richiesta è 'describeFunction', la funzione deve restituire la definizione della funzione con lo stato (returnCode e errorMessage), gli output (name, dataType della colonna di output), i parametri (name, description, type e così via del parametro di input), bucketName e così via come oggetto JSON nel seguente formato (esempio di conteggio delle parole):

    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
        }
    }

    Aggiungere il codice seguente in func.py per restituire funcDefinition quando funcMode nella richiesta è '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: se funcMode è 'executeFunction', è necessario eseguire la logica effettiva della funzione e la risposta deve essere inviata di nuovo a Oracle Analytics con l'output. Quando la funzione registrata viene richiamata dal flusso di dati in Oracle Analytics, l'oggetto della richiesta avrà il formato riportato di seguito con il nome di colonna negli argomenti: input(bucketName, fileName, fileExtension, fileName, method & rowID) e 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"
        }
    }

Informazioni sulla creazione delle funzioni in OCI

È possibile creare funzioni utilizzando la console OCI, la riga di comando (Fn Project CLI) o l'interfaccia API. Ad esempio, nella console OCI fare clic su Servizi per sviluppatori, quindi su Funzioni e seguire le istruzioni visualizzate per creare applicazioni e una o più funzioni. Per informazioni dettagliate, vedere Creazione delle funzioni nella documentazione OCI. Se si stanno creando funzioni per la prima volta, seguire i passaggi nell'esempio end-to-end Creazione, distribuzione e richiamo di una funzione Helloworld. Qualsiasi funzione che si desidera utilizzare in Oracle Analytics deve includere la tag in formato libero oac-compatible=true (vedere la sezione Informazioni sulla configurazione delle funzioni OCI da utilizzare in Oracle Analytics sopra riportata).

Suggerimenti per la creazione delle funzioni nella console OCI

  • Abilitare i log: per impostazione predefinita, i log sono disabilitati per le funzioni. Per abilitare i log per le funzioni, nella pagina Applicazioni, fare clic su Log e abilitare il log fornito per Nome log. In Risorse è possibile ora selezionare Esplora log ed eseguire il drilling nelle voci del log per eseguire il debug e diagnosticare i problemi relativi alle funzioni.
  • Includere dipendenze: includere i package dipendenti nel file requirements.txt per la funzione.
  • Seguire le regole di indentazione: durante la codifica delle funzioni Python, seguire le regole di indentazione di Python.
  • Utilizzare gli errori di risposta delle funzioni: utilizzare i dettagli degli errori elencati nella pagina Flusso di dati per effettuare la diagnosi degli errori.
  • Testare prima le funzioni a livello locale: prima di creare una funzione in OCI, eseguire il test della funzione a livello locale nell'ambiente di sviluppo per assicurarsi che la funzione sia corretta dal punto di vista sintattico e logico.
  • Eseguire il test delle funzioni OCI: prima di integrare le funzioni con Oracle Analytics, assicurarsi che è possibile distribuirle e richiamarle correttamente come funzioni standalone in OCI.
  • Aumentare il timeout: per impostazione predefinita, è previsto un timeout di 30 secondi per le funzioni. Se necessario, aumentare l'impostazione del timeout (ad esempio, impostarla su 300 secondi) nella pagina Modifica funzione della console OCI.
  • Aumentare la memoria: per impostazione predefinita, il limite di memoria previsto per le funzioni è 1024 MB. Se necessario, aumentare il limite di memoria nella pagina Modifica funzione della console OCI.
  • Ottimizzare lo spazio: eliminare i file non utilizzati immediatamente dopo l'uso.
  • Attenzione dalla latenza di rete: tenere presente che la latenza di rete potrebbe causare una leggero ritardo nell'elaborazione complessiva.

Criteri necessari per integrare le funzioni OCI con Oracle Analytics

Per integrare Oracle Analytics con le funzioni OCI, accertarsi di disporre dei criteri di sicurezza richiesti.

L'utente OCI specificato nella connessione tra Oracle Analytics Cloud e la tenancy OCI deve disporre delle autorizzazioni di lettura, scrittura ed eliminazione per il compartimento contenente le risorse OCI che si desidera usare. Accertarsi che l'utente OCI appartenga a un gruppo di utenti con i criteri di sicurezza OCI minimi riportati di seguito. Quando ci si connette a una tenancy OCI da Oracle Analytics, è possibile usare una chiave API OCI oppure un principal risorsa.

Nota:

Per il principal risorsa, specificare {request.principal.type='analyticsinstance', request.principal.compartment.id='<compartmentA_ocid>'} invece di {request.principal.id='<analytics_instance_ocid>'} per includere tutte le istanze di Analytics in un compartimento.
Criteri chiave API Criteri principal risorsa
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>'}
Criterio gruppo dinamico Descrizione
Allow dynamic-group <dynamic_group> to manage objects in compartment <compartment_name> where target.bucket.name='<staging_bucket_name>' Fornisce l'accesso al bucket intermedio per il gruppo dinamico.

Regola di corrispondenza di esempio: <dynamic_group>.{resource.type = 'fnfunc', resource.compartment.id = '<compartment_ocid>'}, dove <compartment_ocid> è l'ID Oracle Cloud del compartimento contenente le funzioni.

Workflow standard per la trasformazione dei dati utilizzando le funzioni OCI

Per trasformare i dati in Oracle Analytics utilizzando le funzioni OCI, effettuare i seguenti task di livello superiore nell'ordine indicato di seguito.

Task Descrizione Ulteriori informazioni

Creare funzioni in OCI (sono richiesti i privilegi di sviluppatore di funzioni)

Creare le funzioni nella tenancy OCI e assicurarsi che soddisfino i requisiti specificati per l'utilizzo con Oracle Analytics.

Informazioni sulla configurazione delle funzioni OCI da utilizzare in Oracle Analytics

Assegnare i criteri OCI Accertarsi di disporre dei criteri OCI necessari per effettuare la connessione mediante una chiave API o un principal risorsa. Criteri necessari per integrare le funzioni OCI con Oracle Analytics
Collegare Oracle Analytics alla tenancy OCI (sono richiesti i privilegi di amministratore o autore DV) In Oracle Analytics creare una connessione alla tenancy OCI.

Creare una connessione alla tenancy dell'infrastruttura Oracle Cloud

Registrare le funzioni OCI in Oracle Analytics (sono richiesti i privilegi di amministratore o autore DV) In Oracle Analytics registrare le funzioni OCI in modo da poterle chiamare dal flusso dati.

Registrare le funzioni OCI in Oracle Analytics

Trasformare i dati utilizzando le funzioni OCI (sono richiesti i privilegi di amministratore o autore DV) Creare un flusso dati e utilizzare il passo Applica script personalizzato per richiamare una funzione OCI.

Trasformare i dati utilizzando le funzioni OCI

Registrare le funzioni OCI in Oracle Analytics

Registrare le funzioni OCI in Oracle Analytics in modo da poterle utilizzare nei flussi di dati per trasformare i dati. Ad esempio, è possibile registrare una funzione di conversione della lingua in modo da consentire agli analisti di dati di convertire il testo inglese in spagnolo o tedesco.

  1. Nella home page di Oracle Analytics fare clic sul menu Pagina, quindi fare clic su Registra modello/funzione, infine su Funzioni OCI.
  2. Nella finestra di dialogo Registrare una funzione personalizzata selezionare una connessione alla tenancy OCI in cui si trovano le funzioni.
  3. Nella finestra di dialogo Seleziona applicazione selezionare l'applicazione contenente le funzioni OCI.
    In caso di dubbi, contattare la persona che ha creato le funzioni in OCI.
  4. Nella finestra di dialogo Seleziona una funzione selezionare una funzione, quindi fare clic su Registra.
    Se la funzione da utilizzare è disattivata, contattare l'amministrare per assicurarsi che sia configurata per Oracle Analytics. Vedere Informazioni sulla configurazione delle funzioni OCI da utilizzare in Oracle Analytics.
Per trasformare i dati, è possibile utilizzare le funzioni OCI registrate nei flussi di dati. Per verificare quali funzioni sono registrate, è possibile visualizzarle nella scheda Script della pagina Machine Learning (nella Home page fare clic su Navigator Icona del Navigator utilizzata per visualizzare il Navigator, quindi su Machine Learning, infine su Script).