Integrera Oracle Analytics med Functions i Oracles molninfrastruktur (OCI) så att du kan använda dem i dataflöden för att transformera data.
Du kan transformera data i Oracle Analytics med hjälp av funktioner som skapats i OCI. Du skulle till exempel kunna använda en språkkonverteringsfunktion för att konvertera engelsk text till spanska eller tyska.
Du registrerar OCI-funktioner i Oracle Analytics först, och sedan kan alla användare av Oracle Analytics som har behörigheten BI-tjänsteadministratör eller DV-innehållskonstruktör använda dem i dataflöden.
Skapa funktioner i konsolen för OCI så att du kan använda dem för att transformera data i dataflöden i Oracle Analytics.
Om registrering av OCI-funktioner i Oracle Analytics
Om du registrerar en OCI-funktion i Oracle Analytics och den visas nedtonad i dialogrutan Välj en funktion ska du kontrollera att den har konfigurerats med taggen oac-compatible
och anropats med korrekt funcMode
-värde.
.png
Om konfiguration av OCI-funktioner att använda i Oracle Analytics
OCI-funktioner som du vill använda i Oracle Analytics måste ha taggen oac-compatible
och funktionskoden måste inkludera variabeln funcMode
. Konfigurera dessa inställningar i konsolen för OCI:
oac-compatible
och ange värdet true
.funcMode
i funktionskoden. Oracle Analytics
skickar en begäran om att registrera en OCI-funktion med funcMode=describeFunction
och en begäran om att anropa en OCI-funktion med funcMode=executeFunction
. Hanterarfunktionen i func.py bör användas i läget describeFunction eller läget executeFunction. Detta kan göras baserat på värdet hos indatavariabeln funcMode
från begäran, enligt nedan.
Här är begäran- och svarsformatet i OCI Functions för ordräkningsexemplet i python.
funcMode = describeFunction
{ "funcMode": "describeFunction"}
När funcMode i begäran är "describeFunction" ska funktionen returnera funktionsdefinitionen med status (returnCode och errorMessage), utdata (namn, dataType för utdatakolumn), parametrar (namn, beskrivning, typ osv. för indataparametern), bucketName osv. som ett JSON-objekt i följande format (exempel med ordräkning):
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 } }
Lägg till följande kod i func.py om du vill att funcDefinition ska returneras när funcMode i begäran är "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 – när funcMode är "executeFunction" ska den faktiska funktionslogiken exekveras och svaret ska skickas tillbaka till Oracle Analytics med utdata. När den registrerade funktionen anropas från dataflödet i Oracle Analytics får begäranobjektet följande format med kolumnnamnet i args, input(bucketName, fileName, fileExtension, fileName, method & rowID) och 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" } }
Om att skapa funktioner i OCI
Du kan skapa funktioner med hjälp av konsolen för OCI, kommandoraden (Fn Project CLI) eller API-gränssnittet. I konsolen för OCI kan du till exempel klicka på Utvecklartjänster, sedan på Funktioner och följa instruktionerna på skärmen för att skapa applikationer och en eller flera funktioner. Mer information finns i dokumenten om att skapa funktioner i OCI. Om du skapar funktioner för första gången kan du följa stegen i det heltäckande exemplet Skapa, distribuera och anropa en Helloworld-funktion. Alla funktioner som du vill använda i Oracle Analytics måste inkludera friformstaggen oac-compatible=true
(se Om konfiguration av OCI-funktioner att använda i Oracle Analytics ovan).
Tips om att skapa funktioner i konsolen för OCI
Kontrollera att du har de säkerhetspolicyer som krävs för att integrera Oracle Analytics med OCI-funktioner.
Den OCI-användare du anger i anslutningen mellan Oracles analysmoln och din OCI-molnpartition måste ha behörighet att läsa, skriva och ta bort för delområdet som innehåller de OCI-resurser du vill använda. Se till att OCI-användaren tillhör en användargrupp med följande lägsta säkerhetspolicyer för OCI. När du ansluter till en OCI-molnpartition från Oracle Analytics kan du använda en API-nyckel eller en resursidentitetshavare för OCI.
Obs!:
Om du använder en resursidentitetshavare och vill inkludera alla Analytics-instanser under ett delområde anger du{request.principal.type='analyticsinstance', request.principal.compartment.id='<compartmentA_ocid>'}
i stället för {request.principal.id='<analytics_instance_ocid>'}
.Policyer för API-nyckel | Policyer för resursidentitetshavare |
---|---|
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>'} |
Policy för dynamiska grupper | Beskrivning |
---|---|
Allow dynamic-group <dynamic_group> to manage objects in compartment <compartment_name> where target.bucket.name='<staging_bucket_name>' |
Ger åtkomst till mellanlagringsbehållare för den dynamiska gruppen. |
Exempel på matchningsregel: <dynamic_group>.{resource.type = 'fnfunc', resource.compartment.id = '<compartment_ocid>'}
, där <compartment_id>
är Oracle Cloud-id:t för det delområde som innehåller funktionerna.
Utför dessa avancerade uppgifter i den ordning som anges nedan om du vill transformera data i Oracle Analytics med hjälp av OCI-funktioner.
Uppgift | Beskrivning | Mer information |
---|---|---|
Skapa funktioner i OCI (kräver behörighet som funktionsutvecklare) |
Skapa funktionerna i din molnpartition för OCI och kontrollera att de efterlever de förutsättningskrav som anges för användning med Oracle Analytics. |
Om konfiguration av OCI-funktioner att använda i Oracle Analytics |
Tilldela OCI-policyer | Kontrollera att du har de OCI-policyer som krävs för att använda API-nyckeln eller resursidentitetshavaren. | Policyer som krävs för integrering av OCI-funktioner med Oracle Analytics |
Anslut Oracle Analytics till din molnpartition för OCI (kräver behörighet som administratör eller DV-konstruktör) | I Oracle Analytics skapar du sedan en anslutning till molnpartitionen för OCI. |
Skapa en anslutning till din molnpartition för Oracles molninfrastruktur |
Registrera OCI-funktioner i Oracle Analytics (kräver behörighet som administratör eller DV-konstruktör) | Registrera OCI-funktionerna i Oracle Analytics, så att du kan anropa dem från dataflöden. | |
Transformera data med hjälp av OCI-funktionerna (kräver behörighet som administratör eller DV-författare) | Skapa ett dataflöde och använd steget Använd anpassat skript för att anropa en OCI-funktion. |
Registrera OCI-funktioner i Oracle Analytics så att du kan använda dem i dataflöden för att transformera data. Du skulle till exempel kunna registrera en språkkonverteringsfunktion så att analytiker kan konvertera engelsk text till spanska eller tyska.