Integrere Oracle Analytics med funksjoner i Oracle Cloud Infrastructure (OCI) for å bruke dem til å omforme data i dataflyter.
Du kan omforme data i Oracle Analytics ved hjelp av funksjoner som er opprettet i OCI. Du kan for eksempel bruke en funksjon for språkkonvertering til å konvertere engelsk tekst til spansk eller tysk.
Du må først registrere OCI-funksjonene i Oracle Analytics, og deretter kan en hvilken som helst Oracle Analytics-bruker med privilegier som tjenesteadministrator eller forfatter av datavisualiseringsinnhold bruke dem i dataflyter.
Opprett funksjoner i OCI-konsollen, slik at du kan bruke dem til å omforme data i dataflyter i Oracle Analytics.
Om registrering av OCI-funksjoner i Oracle Analytics
Hvis en OCI-funksjon du vil registrere i Oracle Analytics, vises i grått i dialogboksen Velg en funksjon, må du kontrollere at den er konfigurert med koden oac-compatible
og aktivert med riktig verdi for funcMode
.
.png
Om konfigurasjon av OCI-funksjoner for bruk i Oracle Analytics
OCI-funksjoner du vil bruke i Oracle Analytics, må ha koden oac-compatible
, og funksjonskoden må inneholde variabelen funcMode
. Konfigurer disse innstillingene i OCI-konsollen:
oac-compatible
, og sett verdien til true
.funcMode
i funksjonskoden. Oracle Analytics
sender en forespørsel om å registrere en OCI-funksjon med funcMode=describeFunction
, og en forespørsel om å aktivere en OCI-funksjon med funcMode=executeFunction
. Behandlerfunksjonen i Func.py skal utføres i modusen describeFunction eller executeFunction. Dette kan gjøres basert på verdien for inndatavariabelen funcMode
fra forespørselen, som vist nedenfor.
Her er forespørsel- og svarformatet for OCI-funksjoner for et eksempel på ordtelling i Python.
funcMode = describeFunction
{ "funcMode": "describeFunction"}
Når funcMode i forespørselen er describeFunction, skal funksjonen returnere funksjonsdefinisjonen med status (returnCode og errorMessage), utdata (name, dataType for utdatakolonnen), parametre (name, description, type og så videre for inndataparameteren), bucketName og så videre som et JSON-objekt, i følgende format (eksempel på ordtelling):
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 } }
Legg til koden nedenfor i Func.py for å returnere funcDefinition når funcMode i forespørselen 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 funksjonslogikken utføres, og svaret skal sendes tilbake til Oracle Analytics med utdataene. Når den registrerte funksjonen startes fra en dataflyt i Oracle Analytics, har forespørselobjektet formatet nedenfor, med kolonnenavnet i argumenter, inndata (bucketName, fileName, fileExtension, fileName, method og rowID) og utdata (bucketName, fileName og 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 å opprette funksjoner i OCI
Du kan opprette funksjoner ved hjelp av OCI-konsollen, kommandolinjen (Fn Project CLI) eller API-et. I OCI-konsollen klikker du for eksempel på Utviklertjenester og deretter Funksjoner og følger instruksjonene på skjermen for å opprette applikasjoner og én eller flere funksjoner. Se Opprette funksjoner i OCI-dokumentasjon hvis du vil ha flere opplysninger. Hvis du skal opprette funksjoner for første gang, følger du alle trinnene i dette eksemplet: Opprette, implementere og aktivere en HelloWorld-funksjon. Alle funksjonene du vil bruke i Oracle Analytics, må inneholde friformskoden oac-compatible=true
(se Om konfigurasjon av OCI-funksjoner for bruk i Oracle Analytics ovenfor).
Tips for opprettelse av funksjoner i OCI-konsollen
Hvis du skal integrere Oracle Analytics med OCI-funksjoner, må du sørge for at du har de nødvendige sikkerhetsretningslinjene.
OCI-brukeren du angir i tilkoblingen mellom Oracle Analytics Cloud og OCI-leieforholdet, må ha lese-, skrive- og slettetillatelse i seksjonen som inneholder OCI-ressursene du vil bruke. Kontroller at OCI-brukeren tilhører en brukergruppe som har minimum følgende OCI-sikkerhetsretningslinjer. Når du kobler til et OCI-leieforhold fra Oracle Analytics, kan du bruke en API-nøkkel eller ressurskontohaver for OCI.
Merknad:
For ressurskontohaver må du angi{request.principal.type='analyticsinstance', request.principal.compartment.id='<compartmentA_ocid>'}
i stedet for {request.principal.id='<analytics_instance_ocid>'}
for å inkludere alle Analytics-forekomster i en seksjon.Retningslinjer for API-nøkkel | Retningslinjer for ressurskontohaver |
---|---|
Allow group <gruppenavn> to use functions-family in compartment <seksjonsnavn> |
Allow any-user to use functions-family in compartment <seksjonsnavn> where all {request.principal.id='<analytics_instance_ocid>'} |
Allow group <gruppenavn> to read buckets in compartment <seksjonsnavn> |
Allow any-user to read buckets in compartment <seksjonsnavn> where all {request.principal.id='<analytics_instance_ocid>'} |
Allow group <gruppenavn> to manage objects in compartment <seksjonsnavn> where target.bucket.name='<navn_på_midlertidig_bås>' |
Allow any-user to manage objects in compartment <seksjonsnavn> where all {request.principal.id='<analytics_instance_ocid>', target.bucket.name='<staging_bucket_name>'} |
Allow group <gruppenavn> to read objectstorage-namespaces in tenancy |
Allow any-user to read objectstorage-namespaces in tenancy where all {request.principal.id='<analytics_instance_ocid>'} |
Retningslinjer for dynamisk gruppe | Beskrivelse |
---|---|
Allow dynamic-group <dynamisk_gruppe> to manage objects in compartment <seksjonsnavn> where target.bucket.name='<navn_på_midlertidig_bås>' |
Gir den dynamiske gruppen tilgang til midlertidig bås. |
Eksempel på samsvarsregel: <dynamic_group>.{resource.type = 'fnfunc', resource.compartment.id = '<compartment_ocid>'}
, der <compartment_id>
er Oracle Cloud-ID-en til seksjonen som inneholder funksjonene.
Følg disse oppgavene på høyt nivå i rekkefølgen de er oppført med nedenfor, når du vil omforme data i Oracle Analytics ved hjelp av OCI-funksjoner.
Oppgave | Beskrivelse | Flere opplysninger |
---|---|---|
Opprette funksjoner i OCI (krever privilegier for funksjonsutvikler) |
Opprett funksjonene i OCI-leieforholdet, og forsikre deg om at de samsvarer med forutsetningene som er angitt for bruk med Oracle Analytics. |
Om konfigurasjon av OCI-funksjoner for bruk i Oracle Analytics |
Tilordne OCI-retningslinjer | Kontroller at du har de nødvendige OCI-retningslinjene for tilkobling ved hjelp av API-nøkkel eller ressurskontohaver. | Nødvendige retningslinjer for å integrere OCI-funksjoner med Oracle Analytics |
Koble Oracle Analytics til OCI-leieforholdet (krever privilegier som administrator eller forfatter av datavisualiseringer) | Opprett en tilkobling til OCI-leieforholdet i Oracle Analytics. |
Opprette en tilkobling til leieforholdet i Oracle Cloud Infrastructure |
Registrere OCI-funksjoner i Oracle Analytics (krever privilegier som administrator eller forfatter av datavisualiseringer) | Registrer OCI-funksjonene i Oracle Analytics, slik at du kan kalle dem fra dataflyter. | |
Omform dataene ved hjelp av OCI-funksjonene (krever privilegier som administrator eller forfatter av datavisualiseringer) | Opprett en dataflyt, og bruk trinnet Bruk egendefinert skript til å starte en OCI-funksjon. |
Registrer OCI-funksjoner i Oracle Analytics, slik at du kan bruke dem til å omforme data i dataflyter. Du kan for eksempel registrere en funksjon for språkkonvertering, slik at dataanalytikere kan konvertere engelsk tekst til spansk eller tysk.