Integrar o Oracle Analytics com Funções do Oracle Cloud Infrastructure

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

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.

Acerca da Configuração das Funções do OCI a Utilizar no Oracle Analytics

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.
Segue-se a descrição de GUID-6FE05B2C-5352-4953-998F-D967B6BA1891-default.png
.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 - Acrescente um identificador de formato livre à função com o nome oac-compatible e defina o valor como true.Segue-se a descrição de GUID-6DDD2A98-7F8D-45D7-9110-9643C2128A84-default.png
    .png
  • funcMode - Inclua a variável 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 a descrição de GUID-0C335709-DEDC-4655-8A29-F544608DA8B3-default.png
    .png

    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

  • Ativar Diários - Por omissão, os diários estão desativados para funções. Para ativar diários para funções, na página Aplicações, clique em Diários e ative o diário fornecido para o Nome do Diário. Em Recursos, pode agora selecionar Explorar Diário e definir o nível de detalhe das entradas do diário para depurar e diagnosticar problemas de funções.
  • Incluir Dependências - Inclua pacotes dependentes no ficheiro requirements.txt para a função.
  • Seguir Regras de Indentação - Siga as regras de indentação de Python enquanto são codificadas as funções de Python.
  • Utilizar Erros de Resposta de Função - Utilize os detalhes de erros listados na página Fluxo de Dados para diagnosticar problemas.
  • Testar Primeiro Funções Localmente - Antes de criar uma função no OCI, teste a função localmente no seu ambiente de desenvolvimento para garantir que a função está correta na forma sintática e lógica.
  • Testar funções no OCI - Antes de integrar as funções no Oracle Analytics, certifique-se de que pode implementar e invocar as mesmas de forma bem-sucedida como funções autónomas no OCI.
  • Aumentar o Limite de Tempo - Por omissão, as funções têm um limite de tempo de 30 segundos. Se necessário, aumente a definição de limite de tempo (por exemplo, altere para 300 segundos) na página Editar Função na Consola do OCI.
  • Aumentar a Memória - Por omissão, as funções têm um limite de memória de 1024 MB. Se necessário, aumente o limite de memória na página Editar Função na Consola do OCI.
  • Otimizar Espaço - Apague os ficheiros inutilizados imediatamente após a utilização.
  • Atenção à Latência de Rede - Não se esqueça que a latência de rede poderá causar um ligeiro atraso no processamento global.

Políticas Obrigatórias para Integrar as Funções do OCI com o Oracle Analytics

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.

Fluxo de Trabalho Típico para Transformar Dados Utilizando Funções do OCI

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.

Registar Funções do OCI no Oracle Analytics

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.

Transformar Dados Utilizando Funções do OCI

Registar Funções do OCI no Oracle Analytics

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.

  1. Na página principal do Oracle Analytics, clique em Menu Página, em seguida, em Registar Modelo/Função e, em seguida, Funções do OCI.
  2. Na caixa de diálogo Registar uma Função Customizada, selecione uma ligação à tenancy do OCI onde as suas funções estão localizadas.
  3. Na caixa de diálogo Selecionar Aplicação, selecione a aplicação que contém as suas funções do OCI.
    Se não tiver a certeza, pergunte à pessoa que criou as funções no OCI.
  4. Na caixa de diálogo Selecionar uma Função, selecione uma função e, em seguida, clique em Registar.
    Se a função que pretende utilizar estiver apresentada a cinzento, pergunte ao administrador para confirmar que está configurada para o Oracle Analytics. Consulte Acerca da Configuração das Funções do OCI a Utilizar no Oracle Analytics.
Pode utilizar funções do OCI em fluxos de dados para transformar dados. Para verificar quais as funções que estão registadas, pode visualizar as funções registadas no separador Scripts da página Aprendizagem Automática (na Página Principal, clique em Navegador, em seguida, Aprendizagem Automática, em seguida, Scripts).