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
Informazioni sulla configurazione delle funzioni OCI da utilizzare in Oracle Analytics
Workflow standard per la trasformazione dei dati utilizzando le funzioni OCI
Creare una connessione alla tenancy dell'infrastruttura Oracle Cloud
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.
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
.
.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
e impostare il valore true
.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.
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
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.
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. | |
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. |
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.