Integreer de functies van Oracle Analytics met die van Oracle Cloud Infrastructure (OCI) zodat u ze kunt gebruiken in gegevensstromen om gegevens te transformeren.
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.
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
.
.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
toe aan de functie en stel de waarde in op true
.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.
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
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.
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-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. | |
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. |
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.