Integrirajte funkcije servisa Oracle Analytics i Oracle Cloud Infrastructure (OCI) kako biste ih mogli upotrebljavati u tijekovima podataka za transformaciju podataka.
Pomoću funkcija stvorenih u okruženju OCI možete transformirati podatke u servisu Oracle Analytics. Npr., možete upotrijebiti funkciju za konverziju jezika teksta na engleskom u tekst na španjolskom ili njemačkom.
Prvo registrirajte OCI funkcije u servisu Oracle Analytics, nakon čega će ih bilo koji korisnik servisa Oracle Analytics s ovlaštenjima administratora BI servisa ili autora DV sadržaja moći upotrebljavati u tijekovima podataka.
Stvorite funkcije u OCI konzoli pomoću koji ćete moći transformirati podatke u tijekovima podataka servisa Oracle Analytics.
Više o registriranju OCI funkcija u servisu Oracle Analytics
Nakon što registrirate OCI funkciju u servisu Oracle Analytics, ako je zasivljena u dijaloškom okviru Odabir funkcije, provjerite je li konfigurirana s oznakom oac-compatible
i pozvana odgovarajućom funcMode
vrijednošću.
.png
Više o konfiguriranju OCI funkcija za upotrebu u servisu Oracle Analytics
OCI funkcije koje želite upotrebljavati u servisu Oracle Analytics moraju imati oznaku oac-compatible
, a kod funkcije mora uključivati varijablu funcMode
. Konfigurirajte sljedeće postavke u OCI konzoli:
oac-compatible
i postavite vrijednost na true
.funcMode
u kod funkcije. Oracle Analytics
poslat će zahtjev za registraciju OCI funkcije uz funcMode=describeFunction
i zahtjev za pozivanje OCI funkcije uz funcMode=executeFunction
. Funkcija obrađivača za func.py treba raditi u načinu rada describeFunction ili executeFunction. To možete učiniti temeljem vrijednosti u ulaznoj varijabli funcMode
iz zahtjeva koji je prikazan u nastavku.
Donosimo format zahtjeva i odgovora OCI funkcija za primjer broja riječi u Pythonu.
funcMode = describeFunction
{ "funcMode": "describeFunction"}
Ako je funcMode u zahtjevu 'describeFunction', funkcija bi trebala vratiti definiciju funkcije sa statusom (povratni kod i poruka pogreške), izlazima (naziv, vrsta podataka u izlaznom stupcu), parametrima (naziv, opis, vrsta itd. ulaznog parametra), nazivom spremnika itd. u vidu JSON objekta u sljedećem formatu (primjer broja riječi):
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 } }
Dodajte sljedeći kod u func.py kako biste vratili funcDefinition ako je funcMode u zahtjevu '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 - Ako je funcMode 'executeFunction', trebala bi se izvršiti logika stvarne funkcije i odgovor bi se trebao vratiti u Oracle Analytics zajedno s izlazom. U slučaju pozivanja registrirane funkcije iz tijeka podataka u servisu Oracle Analytics, objekt zahtjeva bit će u sljedećem formatu s nazivom stupca: args, input(bucketName, fileName, fileExtension, fileName, method & rowID), 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" } }
Više o stvaranju funkcija u okruženju OCI
Funkcije možete stvarati pomoću OCI konzole, u naredbenom retku (Fn Project CLI) ili putem API-ja. Npr., u OCI konzoli pritisnite Razvojni servisi, zatim Funkcije i slijedite zaslonske upute za stvaranje aplikacija i jedne ili više funkcija. Pojedinosti potražite u odjeljku Stvaranje funkcija u OCI dokumentaciji. Ako stvarate funkcije po prvi put, slijedite korake u sveobuhvatnom primjeru Stvaranje, implementacija i pozivanje funkcije Helloworld. Sve funkcije koje želite upotrebljavati u servisu Oracle Analytics moraju uključivati oznaku slobodnog formata oac-compatible=true
(pogledajte Više o konfiguriranju OCI funkcija za upotrebu u servisu Oracle Analytics).
Savjeti za stvaranje funkcija u OCI konzoli
Kako biste integrirali Oracle Analytics i OCI funkcije, uvjerite se da imate potrebna sigurnosna pravila.
OCI korisnik kojega definirate u vezi između servisa Oracle Analytics Cloud i svoje OCI klijentske particije mora imati dopuštenja za čitanje, pisanje i brisanje u odjeljku u kojem se nalaze OCI resursi koje želite upotrijebiti. Provjerite pripada li korisnik servisa OCI grupi korisnika koja ima sljedeća minimalna pravila OCI zaštite. Nakon što povežete OCI klijentsku particiju iz servisa Oracle Analytics, možete upotrijebiti OCI API ključ ili glavni resurs.
Bilješka:
Za glavni resurs, kako biste uključili sve instance servisa Analytics iz odjeljka, definirajte{request.principal.type='analyticsinstance', request.principal.compartment.id='<compartmentA_ocid>'}
umjesto {request.principal.id='<analytics_instance_ocid>'}
.Pravila API ključa | Pravila glavnog resursa |
---|---|
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>'} |
Pravila dinamičke grupe | Opis |
---|---|
Allow dynamic-group <dynamic_group> to manage objects in compartment <compartment_name> where target.bucket.name='<staging_bucket_name>' |
Omogućava pristup spremniku za pripremu za dinamičku grupu. |
Primjer odgovarajućeg pravila: <dynamic_group>.{resource.type = 'fnfunc', resource.compartment.id = '<compartment_ocid>'}
, gdje je <compartment_id>
Oracle Cloud ID odjeljka koji sadrži funkcije.
Slijedite ove zadatke na visokoj razini u redoslijedu navedenom u nastavku kako biste transformirali podatke u servisu Oracle Analytics s pomoću OCI funkcija.
Zadatak | Opis | Dodatne informacije |
---|---|---|
Stvorite funkcije u OCI-ju (zahtijeva ovlaštenja za razvoj funkcija) |
Stvorite funkcije u svojoj OCI klijentskoj particiji i uvjerite se kako su u skladu s preduvjetima navedenima za upotrebu sa servisom Oracle Analytics. |
Više o konfiguriranju OCI funkcija za upotrebu u servisu Oracle Analytics |
Dodjela OCI pravila | Provjerite imate li potrebna OCI pravila za povezivanje API ključa ili glavnog resursa. | Pravila neophodna za integraciju OCI funkcija i servisa Oracle Analytics |
Spojite Oracle Analytics i svoju OCI klijentsku particiju (zahtijeva ovlaštenja administratora ili DV autora) | U servisu Oracle Analytics stvorite vezu s OCI klijentskom particijom. |
Stvaranje veze s klijentskom particijom Oracle Cloud Infrastructure |
Registrirajte OCI funkcije u servisu Oracle Analytics (zahtijeva ovlaštenja administratora ili DV autora) | U servisu Oracle Analytics registrirajte svoje OCI funkcije kako biste ih mogli pozvati iz tijekova podataka. | |
Transformirajte svoje podatke pomoću OCI funkcija (zahtijeva ovlaštenja administratora ili DV autora) | Stvorite tijek podataka i upotrijebite korak Primijeni prilagođenu skriptu kako biste pozvali OCI funkciju. |
Registrirajte OCI funkcije u servisu Oracle Analytics kako biste ih mogli upotrebljavati u tijekovima podataka za transformaciju podataka. Npr., možete registrirati funkciju za konverziju jezika teksta na engleskom u tekst na španjolskom ili njemačkom putem alata za analizu podataka.