Integrer Oracle Analytics med OCI-funktioner (Oracle Cloud Infrastructure) , så du kan bruge dem i dataflows til transformering af data.
Du kan transformere Oracle Analytics ved hjælp af funktioner, som oprettes i OCI. Du kan for eksempel bruge en sprogkonverteringsfunktion til konvertering af engelsk tekst til spansk eller tysk.
Du skal først registrere OCI-funktioner i Oracle Analytics, og derefter kan alle Oracle Analytics-brugere med privilegier som BI-tjenesteadministrator eller DV-indholdsforfatter bruge dem i dataflows.
Opret funktioner i OCI-konsollen, så du kan bruge dem til transformation af data i Oracle Analytics-dataflows.
Om registrering af OCI-funktioner i Oracle Analytics
Når du registrerer en OCI-funktion i Oracle Analytics, og den er nedtonet i dialogboksen Vælg en funktion, skal du kontrollere, at den er konfigureret med tagget oac-compatible
, og at den kaldes med den korrekte værdi for funcMode
.
.png
Om konfiguration af OCI-funktioner til brug i Oracle Analytics
OCI-funktioner, som du vil bruge i Oracle Analytics, skal have et oac-compatible
-tag, og funktionskoden skal indeholde variablen funcMode
. Konfigurer disse indstillinger i OCI-konsollen:
oac-compatible
til funktionen, og angiv værdien til true
. funcMode
i funktionskoden. Oracle Analytics
sender en anmodning om at registrere en OCI-funktion med funcMode=describeFunction
og en anmodning om at kalde en OCI-funktion med funcMode=executeFunction
. Handler-funktionen i func.py skal køre i describeFunction-tilstand eller executeFunction-tilstand. Dette kan gøres baseret på værdien af inputvariablen funcMode
fra anmodningen, som vist nedenfor.
Her er formatet for anmodning og respons for OCI-funktioner til Word Count-eksemplet i python.
funcMode = describeFunction
{ "funcMode": "describeFunction"}
Når funcMode i anmodningen er 'describeFunction', skal funktionen returnere funktionsdefinitionen med status (returnCode og errorMessage), outputs (navn, datatype for outputkolonne), parametre (navn, beskrivelse, type og så videre for inputparameteren), bucketName osv. som et JSON-objekt med følgende format (eksempel på ordtælling):
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 } }
Tilføj følgende kode i func.py for at returnere funcDefinition, når funcMode i anmodningen er '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 er 'executeFunction', skal den faktiske funktionslogik udføres, og responsen skal sendes tilbage til Oracle Analytics sammen med outputtet. Når den registrerede funktion kaldes via dataflow i Oracle Analytics, har anmodningsobjektet følgende format med kolonnenavnet i argumenterne, input(bucketName, fileName, fileExtension, fileName, method & rowID) og 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 oprettelse af funktioner i OCI
Du kan oprette funktioner ved hjælp af OCI-konsollen, kommandolinjen (Fn-projekt-CLI) eller API'en. I OCI-konsollen skal du for eksempel klikke på Udviklertjenester og derefter klikke på Funktioner og følge vejledningen på skærmen for at oprette applikationer og en eller flere funktioner. Se dokumentationen til oprettelse af funktioner i OCI for at få flere oplysninger. Hvis det er første gang, du opretter funktioner, skal du udføre trinnene i start til slut-eksemplet Oprettelse, ibrugtagning og kald af en Helloworld-funktion. Alle funktioner, som du vil bruge i Oracle Analytics, skal indeholde tagget i frit format oac-compatible=true
(se Om konfiguration af OCI-funktioner til brug i Oracle Analytics ovenfor).
Tip til oprettelse af funktioner i OCI-konsollen
Sørg for, at du har de påkrævede sikkerhedspolitikker, når du integrerer Oracle Analytics med OCI-funktioner.
Den OCI-bruger, som du angiver i forbindelsen mellem Oracle Analytics Cloud og din OCI-leje, skal have læse-, skrive- og slettetilladelser til det rum, der indeholder de Data Science-modeller, som du vil bruge. Sørg for, at OCI-brugeren tilhører en brugergruppe med følgende minimumpolitikker for OCI-sikkerhed. Når du opretter forbindelse til en OCI-leje fra Oracle Analytics, kan du bruge en OCI-API-nøgle eller -ressourceprincipal.
Bemærk:
For at inkludere alle Analytics-instanser under et rum for en ressourceprincipal skal du angive:{request.principal.type='analyticsinstance', request.principal.compartment.id='<compartmentA_ocid>'}
i stedet for {request.principal.id='<analytics_instance_ocid>'}
.Politikker for API-nøgle | Politikker for ressourceprincipal |
---|---|
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>'} |
Politik for dynamisk gruppe | Beskrivelse |
---|---|
Allow dynamic-group <dynamic_group> to manage objects in compartment <compartment_name> where target.bucket.name='<staging_bucket_name>' |
Giver adgang til staging-beholder for den dynamiske gruppe. |
Eksempel på matchningsregel: <dynamic_group>.{resource.type = 'fnfunc', resource.compartment.id = '<compartment_ocid>'}
, hvor <compartment_ocid>
er Oracle Cloud-id'en for det rum, der indeholder funktionerne.
Følg disse opgaver på højt niveau i den rækkefølge, som vises nedenfor, for at transformere data i Oracle Analytics ved hjælp af OCI-funktioner.
Opgave | Beskrivelse | Flere oplysninger |
---|---|---|
Opret funktioner i OCI (kræver privilegier som funktionsudvikler) |
Opret dine funktioner i din OCI leje, og kontroller, at de er i overensstemmelse med de krav, som er angivet for brug sammen med Oracle Analytics. |
Om konfiguration af OCI-funktioner til brug i Oracle Analytics |
Tildel OCI-politikker | Sørg for, at du har de påkrævede OCI-politikker for oprettelse af forbindelse med API-nøgle eller ressourceprincipal. | Politikker, der kræves for at integrere OCI-funktioner med Oracle Analytics |
Forbind Oracle Analytics med din OCI-leje (kræver privilegier som administrator eller DV-forfatter) | Opret en forbindelse til din OCI-leje i Oracle Analytics. |
Oprette en forbindelse til din Oracle Cloud Infrastructure-leje |
Registrer OCI-funktioner i Oracle Analytics (kræver privilegier som administrator eller DV-forfatter) | Registrer dine OCI-funktioner i Oracle Analytics, så du kan kalde dem fra dataflows. | |
Transformer dine data ved hjælp af OCI-funktionerne (kræver privilegier som administrator eller DV-forfatter) | Opret et dataflow, og brug trinnet Anvend tilpasset script for at kalde en OCI-funktion. |
Registrer OCI-funktioner i Oracle Analytics, så du kan bruge dem i dataflows til transformering af data. Du kan for eksempel registrere en sprogkonverteringsfunktion, så dataanalytikere kan konvertere engelsk tekst til spansk eller tysk.