Oracle Analytics integreren met Oracle Cloud Infrastructure Functions

Integreer de functies van Oracle Analytics met die van Oracle Cloud Infrastructure (OCI) zodat u ze kunt gebruiken in gegevensstromen om gegevens te transformeren.

OCI-functies gebruiken in Oracle Analytics

U kunt gegevens transformeren in Oracle Analytics met behulp van functies die zijn gemaakt in OCI. U kunt bijvoorbeeld een functie voor de conversie van talen gebruiken om Engelse tekst in het Spaans of Duits om te zetten.

U moet eerst de OCI-functies registreren in Oracle Analytics en vervolgens kan elke gebruiker van Oracle Analytics met rechten als BI-servicebeheerder of Auteur DV-inhoud deze gebruiken in gegevensstromen.

OCI-functies configureren voor gebruik in Oracle Analytics

Maak functies in OCI-console zodat u deze kunt gebruiken om gegevens te transformeren van gegevensstromen in Oracle Analytics.

OCI-functies registreren in Oracle Analytics

Wanneer u een OCI-functie hebt geregistreerd in Oracle Analytics en deze grijs wordt weergegeven in het dialoogvenster Functie selecteren, controleert u of deze is geconfigureerde met het label oac-compatible en wordt aangeroepen met de juiste waarde voor funcMode.
Beschrijving van GUID-6FE05B2C-5352-4953-998F-D967B6BA1891-default.png volgt hierna
.png

OCI-functies configureren voor gebruik in Oracle Analytics

OCI-functies die u wilt gebruiken in Oracle Analytics moeten over het label oac-compatible beschikken en de functiecode moet de variabele funcMode bevatten. Configureer deze instellingen in OCI-console:

  • oac-compatible: voeg een tag met vrije indeling met de naam oac-compatible toe aan de functie en stel de waarde in op true.Beschrijving van GUID-6DDD2A98-7F8D-45D7-9110-9643C2128A84-default.png volgt hierna
    .png
  • funcMode : voeg de variabele funcMode toe aan de functiecode. Door Oracle Analytics wordt een aanvraag verzonden om een OCI-functie te registreren met funcMode=describeFunction wordt een aanvraag verzonden om een OCI-functie aan te roepen met funcMode=executeFunction. De handlerfunctie in func.py moet worden uitgevoerd in de modus 'describeFunction' of de modus 'executeFunction'. Dit kan worden gedaan op basis van de waarde van de invoervariabele funcMode vanuit de aanvraag, zoals hieronder wordt weergegeven.

    Beschrijving van GUID-0C335709-DEDC-4655-8A29-F544608DA8B3-default.png volgt hierna
    .png

    Hier ziet u de indeling van aanvraag en respons van OCI-functies voor het voorbeeld 'Word Count' in Python.

    funcMode = describeFunction

    { "funcMode": "describeFunction"}

    Wanneer 'funcMode' in de aanvraag is ingesteld op 'describeFunction', retourneert de functie de functiedefinitie met de status ('returnCode' en 'errorMessage'), uitvoer (naam, gegevenstype van de uitvoerkolom), parameters (naam, omschrijving, type, enzovoort van de invoerparameter), 'bucketName' enzovoort als een JSON-object in de volgende indeling (voor het voorbeeld 'Word Count'):

    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
        }
    }

    Voeg de volgende code toe in func.py om 'funcDefinition' te retourneren wanneer 'funcMode' in de aanvraag 'describeFunction' is.

    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: wanneer 'funcMode' is ingesteld op 'executeFunction', wordt de werkelijke functielogica uitgevoerd en wordt de respons teruggestuurd naar Oracle Analytics met de uitvoer. Wanneer de geregistreerde functie wordt aangeroepen vanuit de gegevensstroom in Oracle Analytics, moet het object van de aanvraag weergegeven in de volgende indeling met de kolomnaam in argumenten, invoer (bucketName, fileName, fileExtension, fileName, method & rowID) en uitvoer (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"
        }
    }

Functies maken in OCI

U kunt functies maken met de OCI-console, in de opdrachtregel (Fn Project CLI) of via een API. Klik bijvoorbeeld in de OCI-console op Services voor ontwikkelaars, klik vervolgens op Functies en volg de instructies op het scherm om applicaties en één of meer functies te maken. Zie Functies maken in OCI-documentatie voor meer informatie. Als u voor het eerst een functie maakt, volgt u de stappen in het begin-tot-eind voorbeeld De functie 'Hallo wereld' maken, implementeren en aanroepen. Alle functies die u in Oracle Analytics wilt gebruiken moeten het label met een vrije vorm oac-compatible=true bevatten (zie OCI-functies configureren voor gebruik in Oracle Analytics hierboven voor meer informatie).

Tips voor het maken van functies in OCI-console

  • Logboeken activeren: standaard zijn logboeken niet geactiveerd voor functies. Als u logboeken wilt activeren voor functies, klikt u op de pagina Applicaties op Logboeken en activeert u het logboek dat wordt aangeboden voor Naam logboek. Onder Resources kunt u nu Logbestand verkennen selecteren en inzoomen op logbestandsgegevens om problemen met functies te diagnosticeren en te debuggen.
  • Afhankelijkheden opnemen: neem afhankelijke pakketten op in het bestand 'requirements.txt' voor de functie.
  • Inspringingsregels volgen: volg de inspringingsregels voor Python bij het coderen van functies in Python.
  • Fouten in functierespons gebruiken: gebruik de foutdetails op de pagina 'Gegevensstroom' om problemen te identificeren.
  • Functies eerst lokaal testen: voordat u een functie in OCI maakt, moet u deze lokaal testen in uw ontwikkelomgeving om te zorgen dat de functie syntactisch en logisch correct is.
  • Functies testen in OCI: voordat u de functies integreert in Oracle Analytics, kunt u ervoor zorgen dat u deze kunt implementeren en aanroepen als zelfstandige functies in OCI.
  • Time-out verhogen: standaard hebben functies een time-out van 30 seconden. Indien nodig kunt u de time-outinstelling verhogen (bijvoorbeeld naar 300 seconden) op de pagina Functie bewerken in de OCI Console.
  • Geheugen vergroten: standaard hebben functies een gegevenslimieten van 1024 MB. Indien nodig kunt u geheugenlimiet verhogen op de pagina Functie bewerken in de OCI Console.
  • Ruimte optimaliseren: verwijder bestanden die niet meer worden gebruikt onmiddellijk na gebruik.
  • Houd rekening met netwerkvertraging: houd er rekening mee dat netwerkvertraging kan leiden tot een kleine vertraging in de algehele uitvoering.

Policy's die vereist zijn om OCI-functies te integreren met Oracle Analytics.

Als u Oracle Analytics wilt integreren met OCI-functies, moet u over de vereiste beveiligingspolicy's beschikken.

De OCI-gebruiker die u opgeeft in de verbinding tussen Oracle Analytics Cloud en uw OCI-tenancy moeten rechten voor lezen, schrijven en verwijderen hebben voor het compartiment met de OCI-resources die u wilt gebruiken. Zorg ervoor dat de OCI-gebruiker die u opgeeft, behoort tot een gebruikersgroep met minimaal de volgende OCI-beveiligingspolicy's. Wanneer u verbinding maakt met een OCI-tenancy vanuit Oracle Analytics, kunt u een OCI API-sleutel of resourceprincipal gebruiken.

Opmerking:

Als u voor een resourceprincipal alle Analytics instances onder een compartiment wilt opnemen, geeft u {request.principal.type='analyticsinstance', request.principal.compartment.id='<compartmentA_ocid>'} op in plaats van {request.principal.id='<analytics_instance_ocid>'}.
Policy's voor API-sleutels Policy's voor resourceprincipals
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 voor dynamische groepen Beschrijving
Allow dynamic-group <dynamic_group> to manage objects in compartment <compartment_name> where target.bucket.name='<staging_bucket_name>' Biedt toegang tot de parkeerbucket voor de dynamische groep.

Voorbeeld van een matchregel: <dynamic_group>.{resource.type = 'fnfunc', resource.compartment.id = '<compartment_ocid>'}, waarin <compartment_ocid> de Oracle Cloud ID van het compartiment is dat de functies bevat.

Typische workflow voor het transformeren van gegevens met OCI-functies

Volg deze hoofdtaken in de onderstaande volgorde om gegevens te transformeren in Oracle Analytics met OCI-functies.

Taak Beschrijving Meer informatie

Functies maken in OCI (hiervoor zijn rechten als ontwikkelaar van functies vereist)

Maak in uw OCI-tenancy de gewenste functies en zorg ervoor dat deze voldoen aan de vereisten voor gebruik met Oracle Analytics.

OCI-functies configureren voor gebruik in Oracle Analytics

OCI-policy's toewijzen Zorg ervoor dat u over de vereiste OCI-policy's beschikt om verbinding te maken met behulp van een API-sleutel of resourceprincipal. Policy's die vereist zijn om OCI functies te integreren met Oracle Analytics.
Oracle Analytics verbinden met uw OCI-tenancy (hiervoor zijn rechten als beheerder of auteur voor de visualisatie van gegevens vereist) Maak in Oracle Analytics een verbinding met uw OCI-tenancy.

Een verbinding maken met uw Oracle Cloud Infrastructure tenancy

OCI-functies registreren in Oracle Analytics (hiervoor zijn rechten als beheerder of auteur voor de visualisatie van gegevens vereist) Registreer in Oracle Analytics uw OCI-functies zodat u deze kunt aanroepen vanuit de gegevensstromen.

OCI-functies registreren in Oracle Analytics

Uw gegevens transformeren met OCI-functies (hiervoor zijn rechten als beheerder of auteur voor de visualisatie van gegevens vereist) Maak een gegevensstroom en gebruik de stap Aangepast script toepassen om een OCI-functie aan te roepen.

Gegevens transformeren met OCI-functies

OCI-functies registreren in Oracle Analytics

Registreer de OCI-functies in Oracle Analytics zodat u deze kunt gebruiken in gegevensstromen om gegevens te transformeren. Voorbeeld: u kunt een functie voor de conversie van talen registreren, zodat gegevensanalisten Engelse tekst in Spaans of Duits kunnen omzetten.

  1. Klik in Oracle Analytics op de 'Beginpagina' op Paginamenu en klik achtereenvolgens op ML-model/Functiemodel registreren en OCI-functies.
  2. Selecteer in het dialoogvenster Een aangepaste functie registreren een verbinding met de OCI-tenancy waar uw functies zich bevinden.
  3. Selecteer in het dialoogvenster Applicatie selecteren de applicatie met uw OCI-functies.
    Als u twijfelt, vraagt u de persoon die die functies in OCI heeft gemaakt.
  4. Selecteer in het dialoogvenster Functie selecteren een functie en klik vervolgens op Registreren.
    Als de functie die u wilt gebruiken, grijs is, vraagt u de beheerder om te controleren of de functie is geconfigureerd voor Oracle Analytics. Zie voor meer informatie: OCI-functies configureren voor gebruik in Oracle Analytics.
U kunt geregistreerde OCI-functies in gegevensstromen gebruiken om gegevens te transformeren. Als u wilt verifiëren welke functies zijn geregistreerd, kunt u de geregistreerde functies weergeven in het tabblad Scripts van de pagina Machine Learning (klik op de Beginpagina op Navigator Pictogram Navigator dat gebruikt wordt om de Navigator weer te geven en klik op Machine Learning en vervolgens op Scripts).