Integre o Oracle Analytics com as funções do Oracle Cloud Infrastructure (OCI) para que possam ser utilizadas nos fluxos de dados para transformar dados.
Acerca de Como Utilizar as Funções do OCI no Oracle Analytics
Acerca da Configuração das Funções do OCI a Utilizar no Oracle Analytics
Fluxo de Trabalho Típico para Transformar Dados Utilizando Funções do OCI
Criar uma Ligação à Sua Tenancy do Oracle Cloud Infrastructure
Pode transformar dados no Oracle Analytics utilizando funções criadas no OCI. Por exemplo, poderá utilizar uma função de conversão de línguas para converter texto inglês em texto espanhol ou alemão.
Regista primeiro funções do OCI no Oracle Analytics e, em seguida, qualquer utilizador do Oracle Analytics com os privilégios de Administrador de Serviços do BI ou Autor de Conteúdo do DV pode utilizar essas funções nos fluxos de dados.
Crie funções na Consola do OCI para que possa utilizá-las para transformar dados nos fluxos de dados do Oracle Analytics.
Acerca do Registo das Funções do OCI no Oracle Analytics
Quando registar uma função do OCI no Oracle Analytics, se estiver apresentado a cinzento na caixa de diálogo Selecionar uma Função, verifique se está configurado com o identificador oac-compatible
e invocado com o valor funcMode
correto.
.png
Acerca da Configuração das Funções do OCI a utilizar no Oracle Analytics
As funções do OCI que pretende utilizar no Oracle Analytics devem ter um identificador oac-compatible
e o código de função deve incluir a variável funcMode
. Configure estas definições na Consola do OCI:
oac-compatible
e defina o valor como true
.funcMode
no seu código de função. O Oracle Analytics
envia um pedido para registar uma função do OCI com funcMode=describeFunction
e um pedido para invocar uma função do OCI com funcMode=executeFunction
. A função de rotina de tratamento em func.py deverá funcionar no modo describeFunction ou no modo executeFunction. Esta operação pode ser feita com base no valor da variável de entrada de dados funcMode
a partir do pedido conforme mostrado abaixo.
Segue-se o formato do pedido e da resposta de Funções do OCI para o exemplo de Contagem de Palavras em python.
funcMode = describeFunction
{ "funcMode": "describeFunction"}
Quando o funcMode no pedido for 'describeFunction', a função deve devolver a definição de função com o estado (returnCode e errorMessage), saídas de dados (nome, dataType da coluna de saída de dados), parâmetros (nome, descrição, tipo, entre outros, do parâmetro de entrada de dados), bucketName, entre outros, como um objeto JSON no seguinte formato (exemplo de contagem de palavras):
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 } }
Acrescente o seguinte código em func.py para devolver funcDefinition quando funcMode no pedido for '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 - Quando funcMode for 'executeFunction', a lógica da função real deve ser executada e a resposta deve ser enviada de volta para o Oracle Analytics com a saída de dados. Quando a função registada for invocada do fluxo de dadis no Oracle Analytics, o objeto do pedido estará no seguinte formato com o nome de coluna em args, entrada de dados (bucketName, fileName, fileExtension, fileName, method & rowID) e saída de dados (bucketName, fileName e 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" } }
Acerca da Criação de Funções no OCI
Pode criar funções utilizando a Consola do OCI, a linha de comandos (Fn Project CLI) ou a API. Por exemplo, na Consola do OCI, clique em Serviços do Developer, em seguida Funções e siga as instruções apresentadas no ecrã para criar aplicações e uma ou mais funções. Para obter detalhes, consulte Documentação sobre Criar Funções do OCI. Se estiver a criar funções pela primeira vez, siga os passos no exemplo global Criar, Implementar e Invocar uma Função Helloworld. Quaisquer funções que pretenda utilizar no Oracle Analytics devem incluir o identificador de formato livre oac-compatible=true
(consulte Acerca da Configuração das Funções do OCI a utilizar no Oracle Analytics acima).
Sugestões sobre a Criação de Funções na Consola do OCI
Para integrar o Oracle Analytics com funções do OCI, certifique-se de que dispõe das políticas de segurança obrigatórias.
O utilizador do OCI que especificar na ligação entre o Oracle Analytics Cloud e a sua tenancy do OCI deve ter permissões de leitura, escrita e apagamento no compartimento que contém os recursos do OCI que pretende utilizar. Certifique-se de que o utilizador do OCI pertence a um grupo de utilizadores com as seguintes políticas de segurança mínimas do OCI. Quando estabelece ligação a uma tenancy do OCI a partir do Oracle Analytics, pode utilizar uma chave da API ou um recurso principal do OCI.
Nota:
Para o recurso principal, para incluir todas as instâncias do Analytics num compartimento, especifique{request.principal.type='analyticsinstance', request.principal.compartment.id='<compartmentA_ocid>'}
em vez de {request.principal.id='<analytics_instance_ocid>'}
.Políticas de Chave da API | Políticas de Recurso Principal |
---|---|
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>'} |
Política de Grupo Dinâmico | Descrição |
---|---|
Allow dynamic-group <dynamic_group> to manage objects in compartment <compartment_name> where target.bucket.name='<staging_bucket_name>' |
Fornece acesso ao bucket de transferência para o grupo dinâmico. |
Regra de correspondência de exemplo: <dynamic_group>.{resource.type = 'fnfunc', resource.compartment.id = '<compartment_ocid>'}
, em que <compartment_ocid>
é o Oracle Cloud ID do compartimento que contém as funções.
Siga estas tarefas de elevado nível na ordem listada abaixo para transformar dados no Oracle Analytics utilizando funções do OCI.
Tarefa | Descrição | Mais Informações |
---|---|---|
Criar funções no OCI (requer privilégios de programador de funções) |
Na sua tenancy do OCI, crie as suas funções e certifique-se de que estão em conformidade com os pré-requisitos especificados para utilização com o Oracle Analytics. |
Acerca da Configuração das Funções do OCI a Utilizar no Oracle Analytics |
Atribuir políticas do OCI | Certifique-se de que tem as políticas do OCI obrigatórias para estabelecer ligação utilizando a chave da API ou o recurso principal. | Políticas Obrigatórias para Integrar as Funções do OCI com o Oracle Analytics |
Ligar o Oracle Analytics à sua tenancy do OCI (requer privilégios de autor de DV ou de admin) | No Oracle Analytics, crie uma ligação à sua tenancy do OCI. |
Criar uma Ligação à Sua Tenancy do Oracle Cloud Infrastructure |
Registar funções do OCI no Oracle Analytics (requer privilégios de autor de DV ou de admin) | No Oracle Analytics, registe as suas funções do OCI para que possam ser chamadas a partir dos fluxos de dados. | |
Transformar os seus dados utilizando funções do OCI (requer privilégios de autor de DV ou de admin) | Crie um fluxo de dados e utilize o passo Aplicar Script Customizado para invocar uma função do OCI. |
Registe as funções do OCI no Oracle Analytics para que possam ser utilizadas nos fluxos de dados para transformar dados. Por exemplo, poderá registar uma função de conversão de línguas para que os analistas de dados possam converter texto inglês em texto espanhol ou alemão.