Intégrez Oracle Analytics au service des fonctions pour Oracle Cloud Infrastructure (OCI) afin de pouvoir utiliser ce service dans des flux pour transformer des données.
À propos de l'utilisation du service des fonctions pour OCI dans Oracle Analytics
À propos de la configuration du service des fonctions pour OCI à utiliser dans Oracle Analytics
Flux de travail type pour la transformation de données à l'aide du service des fonctions pour OCI
Créer une connexion à votre location Oracle Cloud Infrastructure
Enregistrer le service des fonctions pour OCI dans Oracle Analytics
Vous pouvez transformer des données dans Oracle Analytics à l'aide des fonctions créées dans OCI. Par exemple, vous pouvez utiliser une fonction de conversion de langue pour convertir un texte anglais en espagnol ou en allemand.
Vous commencez par enregistrer des fonctions OCI dans Oracle Analytics, puis tout utilisateur Oracle Analytics doté du privilège Administrateur de service BI ou Auteur de contenu DV peut les utiliser dans des flux de données.
Créez des fonctions dans la console OCI et utilisez-les pour transformer des données dans les flux de données Oracle Analytics.
À propos de l'enregistrement du service des fonctions pour OCI dans Oracle Analytics
Lors de l'enregistrement d'une fonction OCI dans Oracle Analytics, si celle-ci apparaît grisée dans la boîte de dialogue Sélectionner une fonction, vérifiez qu'elle est configurée avec la balise oac-compatible
et appelée avec la valeur funcMode
appropriée.
.png
À propos de la configuration du service des fonctions pour OCI à utiliser dans Oracle Analytics
Les fonctions OCI que vous voulez utiliser dans Oracle Analytics doivent avoir une balise oac-compatible
et leur code doit inclure la variable funcMode
. Configurez ces paramètres dans la console OCI :
oac-compatible
et réglez la valeur à true
.funcMode
dans le code de la fonction. Oracle Analytics
envoie une demande pour enregistrer une fonction OCI avec funcMode=describeFunction
et une demande pour appeler une fonction OCI avec funcMode=executeFunction
. La fonction de traitement dans func.py doit fonctionner en mode describeFunction ou executeFunction. Cela dépend de la valeur de la variable d'entrée funcMode
définie dans la demande, comme illustré ci-dessous.
Voici le format de demande et de réponse du service des fonctions pour OCI pour un exemple de comptage de mots dans Python.
funcMode = describeFunction
{ "funcMode": "describeFunction"}
Lorsque la variable funcMode de la demande a la valeur 'describeFunction', la fonction doit retourner la définition de la fonction avec status (returnCode et errorMessage), outputs (name, dataType, pour la colonne de sortie), parameters (name, description, type, etc., pour le paramètre d'entrée), bucketName, etc. afin de constituer un objet JSON au format suivant (exemple de comptage de mots) :
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 } }
Ajoutez le code suivant dans func.py pour retourner funcDefinition lorsque la variable funcMode dans la demande a la valeur '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 - Lorsque la variable funcMode a la valeur 'executeFunction', la logique de la fonction doit être exécutée et la réponse doit être renvoyée à Oracle Analytics avec la sortie. Lorsque la fonction enregistrée est appelée à partir d'un flux de données dans Oracle Analytics, l'objet de la demande est dans le format suivant, avec le nom de la colonne dans args, input (bucketName, fileName, fileExtension, fileName, method & rowID) et 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" } }
À propos de la création de fonctions dans OCI
Vous pouvez créer des fonctions à l'aide de la console OCI, de la ligne de commande (interface de ligne de commande Fn Project) ou de l'API. Par exemple, dans la console OCI, cliquez sur Services de développement, puis sur Fonctions et suivez les instructions affichées pour créer des applications et une ou plusieurs fonctions. Pour plus de détails, voir Documentation sur la création de fonctions dans OCI. Si vous créez des fonctions pour la première fois, suivez les étapes de l'exemple de bout en bout Création, déploiement et appel d'une fonction Helloworld. Toutes les fonctions que vous souhaitez utiliser dans Oracle Analytics doivent inclure la balise à structure libre oac-compatible=true
(voir la section À propos de la configuration du service des fonctions pour OCI à utiliser dans Oracle Analytics ci-dessus).
Conseils sur la création de fonctions OCI dans la console OCI
Pour intégrer Oracle Analytics au service des fonctions pour OCI, vérifiez que vous disposez des politiques de sécurité requises.
L'utilisateur OCI que vous spécifiez pour la connexion entre Oracle Analytics Cloud et votre location OCI doit disposer des autorisations de lecture, d'écriture et de suppression sur le compartiment contenant les ressources OCI que vous voulez utiliser. L'utilisateur OCI doit appartenir à un groupe d'utilisateurs disposant des politiques de sécurité OCI minimales suivantes . Lorsque vous vous connectez à une location OCI depuis Oracle Analytics, vous pouvez utiliser une clé d'API ou un principal de ressource OCI.
Note :
Concernant le principal de ressource, pour inclure toutes les instances Analytics dans un compartiment, spécifiez :{request.principal.type='analyticsinstance', request.principal.compartment.id='<compartmentA_ocid>'}
au lieu de {request.principal.id='<analytics_instance_ocid>'}
.Politiques de clé d'API | Politiques de principal de ressource |
---|---|
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>'} |
Politique de groupe dynamique | Description |
---|---|
Allow dynamic-group <dynamic_group> to manage objects in compartment <compartment_name> where target.bucket.name='<staging_bucket_name>' |
Fournit l'accès au seau intermédiaire pour le groupe dynamique. |
Exemple de règle de correspondance : <dynamic_group>.{resource.type = 'fnfunc', resource.compartment.id = '<compartment_ocid>'}
, <compartment_ocid>
étant l'ID Oracle Cloud du compartiment contenant les fonctions.
Suivez les tâches de haut niveau ci-dessous dans l'ordre indiqué pour transformer des données dans Oracle Analytics à l'aide des fonctions OCI.
Tâche | Description | Informations supplémentaires |
---|---|---|
Créer des fonctions dans OCI (requiert les privilèges de développeur de fonctions) |
Dans la location OCI, créez des fonctions et assurez-vous qu'elles respectent les conditions requises spécifiées pour l'utilisation avec Oracle Analytics. |
À propos de la configuration du service des fonctions pour OCI à utiliser dans Oracle Analytics |
Affecter des politiques OCI | Assurez-vous que vous disposez des politiques OCI requises pour vous connecter à l'aide d'une clé d'API ou d'un principal de ressource. | Politiques requises pour intégrer le service des fonctions pour OCI à Oracle Analytics |
Connecter Oracle Analytics à la location OCI (requiert les privilèges d'administrateur ou d'auteur de contenu DV) | Dans Oracle Analytics, créez une connexion à votre location OCI. |
Créer une connexion à votre location Oracle Cloud Infrastructure |
Enregistrer des fonctions OCI dans Oracle Analytics (requiert les privilèges d'administrateur ou d'auteur de contenu DV) | Dans Oracle Analytics, enregistrez vos fonctions OCI afin de pouvoir les appeler à partir des flux de données. |
Enregistrer le service des fonctions pour OCI dans Oracle Analytics |
Transformer des données à l'aide des fonctions OCI (requiert les privilèges d'administrateur ou d'auteur de contenu DV) | Créez un flux de données et utilisez l'étape Appliquer le script personnalisé pour appeler une fonction OCI. |
Transformer des données à l'aide du service des fonctions pour OCI |
Enregistrez des fonctions OCI dans Oracle Analytics afin de pouvoir les utiliser dans des flux de données pour transformer des données. Par exemple, vous pouvez enregistrer une fonction de conversion de langue pour permettre aux analystes de données de convertir un texte anglais en espagnol ou en allemand.