Integrera Oracle Analytics med OCI Functions

Integrera Oracle Analytics med Functions i Oracles molninfrastruktur (OCI) så att du kan använda dem i dataflöden för att transformera data.

Om användning av OCI-funktioner i Oracle Analytics

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.

Om konfiguration av OCI-funktioner att använda i Oracle Analytics

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.
Beskrivning av GUID-6FE05B2C-5352-4953-998F-D967B6BA1891-default.png följer
.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 – Lägg till en friformstagg i funktionen, med namnet oac-compatible och ange värdet true.Beskrivning av GUID-6DDD2A98-7F8D-45D7-9110-9643C2128A84-default.png följer
    .png
  • funcMode – inkludera variabeln 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.

    Beskrivning av GUID-0C335709-DEDC-4655-8A29-F544608DA8B3-default.png följer
    .png

    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

  • Aktivera loggar – Som standard är loggar inaktiva för funktioner. Om du vill aktivera loggar för funktioner klickar du på Loggar på sidan Applikationer och aktiverar den logg som anges för Logg. Under Resurser kan du nu välja Utforska logg och borra in i loggposter för att felsöka och diagnosticera problem med funktioner.
  • Inkludera beroenden – inkludera beroende paket i filen requirements.txt för funktionen.
  • Följ indragsregler – följ indragsreglerna för Python medan du kodar Python-funktioner.
  • Använd felen vid funktionssvar – Använd de feldetaljer som listas på sidan Dataflöde för att diagnostisera problem.
  • Testa funktioner lokalt först – Innan du skapar funktionen i OCI bör du testa funktionen lokalt i utvecklingsmiljön för att säkerställa att funktionen är syntaktiskt och logiskt korrekt.
  • Testa funktioner i OCI – innan du integrerar funktioner med Oracle Analytics bör du kontrollera att du kan distribuera och anropa dem som fristående funktioner i OCI.
  • Öka tidsgränsen– Som standard har funktioner en tidsgräns på 30 sekunder. Du kan vid behov öka inställningen av tidsgräns (t.ex. ändra den till 300 sekunder) på sidan Redigera funktion i konsolen för OCI.
  • Öka minnet – Som standard har funktioner en minnegräns på 1 024 MB. Du kan vid behov öka minnesgränsen på sidan Redigera funktion i konsolen för OCI.
  • Optimera utrymmet – ta bort oanvända filer omedelbart efter användning.
  • Var uppmärksam på nätverkets svarstid – tänk på att nätverkets svarstid kan orsaka en viss fördröjning i den övergripande bearbetningen.

Policyer som krävs för integrering av OCI-funktioner med Oracle Analytics

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.

Standardarbetsflöde för transformering av data med OCI-funktioner

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.

Registrera OCI-funktioner i Oracle Analytics

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.

Transformera data med hjälp av OCI-funktioner

Registrera OCI-funktioner i Oracle Analytics

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.

  1. På hemsidan i Oracle Analytics klickar du på menyn Sida, sedan på Registrera modell/funktion och sedan på OCI-funktioner.
  2. I dialogrutan Registrera en anpassad funktion väljer du en anslutning till den molnpartition för OCI där funktionerna finns.
  3. I dialogrutan Välj applikation väljer du applikationen som innehåller OCI-funktionerna.
    Fråga personen som skapade funktionerna i OCI om du är osäker.
  4. Välj en funktion i dialogrutan Välj en funktion och klicka på Registrera.
    Om funktionen du vill använda är nedtonad ska du fråga administratören för att kontrollera att den har konfigurerats för Oracle Analytics. Se Om konfiguration av OCI-funktioner att använda i Oracle Analytics.
Du kan använda registrerade OCI-funktioner i dataflöden för att transformera data. Du kan kontrollera vilka funktioner som har registrerats genom att visa registrerade funktioner på fliken Skript på sidan Maskininlärning (gå till hemsidan, klicka på Navigator, sedan på Maskininlärning och sedan på Skript).