5.10 Sobre Binds e Notebooks de Interpretadores

Um interpretador é um plug-in que permite usar um backend de linguagem de processamento de dados específico.

Para os Notebooks do Zeppelin na IU do Oracle Machine Learning, você usa os interpretadores SQL, PL/SQL, Python e R em um grupo de interpretadores do Oracle Database e o interpretador Markdown para sintaxe de formatação de texto simples, para que possa ser convertido em HTML. Você usa o interpretador Conda para se conectar ao ambiente Conda e trabalhar com pacotes de biblioteca de terceiros Python.

Para usar esses intérpretes, você deve usar essas diretivas no início do parágrafo em um caderno.
  • SQL - %sql
  • PL/SQL - %script
  • Python - %python
  • R - %r
  • Desconto - %md
  • Conda - %conda
Notebooks contêm uma lista interna de bindings que definem a ordem das bindings do interpretador em um grupo de interpretadores. A ordem padrão de associações de interpretadores no grupo de interpretadores do Oracle Database é:
  • Baixo - Fornece o menor nível de recursos para operações no banco de dados, geralmente execução serial (não paralela). Ele suporta o número máximo de operações simultâneas no banco de dados por vários usuários. O interpretador com baixa prioridade é listado no topo da lista de interpretadores e, portanto, é o padrão.
  • Médio - Fornece um número fixo de CPUs para executar operações no banco de dados em paralelo, quando possível. Ele suporta um número limitado de usuários simultâneos, geralmente 1,25 vezes o número de CPUs alocadas para o banco de dados plugável.
  • Alto - Fornece o nível mais alto de CPUs para executar operações no banco de dados em paralelo, até o número de CPUs alocadas para o banco de dados plugável. Ele oferece o mais alto desempenho, mas suporta o número mínimo de operações simultâneas no banco de dados, geralmente 3.
Com relação às associações de interpretador, você pode executar as seguintes tarefas:
  • Bind and unbind interpretters: Se você não vincular nenhum interpretador específico ao seu notebook, receberá a mensagem de erro:
    Not supported interpreter <name of interpreter>
  • Defina e reordene as associações do interpretador. Talvez você queira definir e reordenar associações de interpretadores se quiser usar um interpretador específico para um parágrafo específico em um notebook. Nesse caso, você deve selecionar o intérprete específico para esse parágrafo.
  • Alterar a vinculação do interpretador para qualquer parágrafo específico em um notebook
Observe a ordem de vinculação do interpretador nos seguintes cenários:
  • Criação de notebook - Quando você cria um notebook, o notebook herda a ordem de vinculação inicial do interpretador, que é baixa (padrão), média, alta.
  • Importação de notebook - Ao importar um notebook, o notebook herda as associações de interpretador definidas. No entanto, depois de importar um notebook, verifique a ordem das associações do interpretador e se os interpretadores necessários estão selecionados.
  • Exportação de notebook - Ao exportar um notebook, o notebook herda as associações de interpretador definidas.
  • Criação de notebook a partir de modelos - Quando você cria um notebook a partir de modelos, o notebook herda a ordem padrão de associações de interpretador.

5.10.1 Alterar Binds de Interpretador para Parágrafos Específicos em um Notebook

A ordem de vinculação do interpretador definida para um notebook se aplica a todos os parágrafos desse notebook. No entanto, você pode substituir a vinculação do interpretador para interpretadores SQL, PL/SQL, R, Python e Conda para qualquer parágrafo específico no notebook.

Para usar esses intérpretes, você deve usar essas diretivas no início do parágrafo em um caderno.
  • SQL - %sql
  • PL/SQL - %script
  • Python - %python
  • R - %r
  • Desconto - %md
  • Conda - %conda

Observação:

Não substitua as associações de interpretador de parágrafo Python, pois elas não compartilharão o mesmo backend do mecanismo Python.
Para alterar a vinculação do interpretador para um parágrafo específico em um notebook:
  1. Abra o notebook e clique no ícone de engrenagem para exibir as associações do interpretador e sua ordem.
    Opções do editor de notebook
    Neste exemplo, todos os três interpretadores SQL estão vinculados ao notebook, e o interpretador com a alocação de recursos low adwpcwdp_low %sql é o padrão, pois é o primeiro interpretador da lista. O interpretador Markdown não está vinculado ao notebook

    Observação:

    Os nomes dos interpretadores estão no formato databasename_low, databasename_medium e databasename_high, que é o mesmo que o nome da ordem de vinculação do interpretador.
    Neste exemplo, os nomes dos interpretadores são:
    • adwp_low % sql(default),%script, %python, %r, %conda
    • adwp_medium % sql(default),%script, %python, %r, %conda
    • adwp_high % sql(default), %script,%python, %r, %conda
    • md %md(default)

    Figura 5-9 Vinculações do Interpretador

    Binds do Interpretador
    O primeiro interpretador Python da lista é usado para executar todos os parágrafos Python no notebook. Por exemplo, se o binding low for selecionado, todos os parágrafos Python serão executados usando o interpretador Python de binding low. Todos os outros parágrafos com associações de interpretador SQL e Script são executados usando o serviço de nome de banco de dados low, ou seja, adwp_low. Se algum script Python executar consultas no banco de dados, essas consultas serão executadas usando o serviço de nome de banco de dados low, ou seja, adwp_low neste exemplo.
  2. Para alterar a ordem de vinculações do interpretador para um parágrafo específico no notebook:
    • Role para baixo até o parágrafo para o qual você deseja alterar o interpretador
    • Chame o intérprete com a vinculação específica
    • Execute o parágrafo
    Por exemplo, chame o interpretador com alocação de recursos médios digitando %adwp_medium para o primeiro parágrafo no notebook e execute o parágrafo. Neste exemplo, adwp é o nome do banco de dados.
    Ordem de vinculação de intérprete modificada
    Observe que o primeiro parágrafo é executado sem qualquer erro depois de alterar a vinculação do interpretador. O segundo parágrafo deste notebook tem a vinculação padrão.
  3. Valide a vinculação do interpretador para o primeiro parágrafo deste notebook digitando a instrução SQL SELECT SYS_CONTEXT ('USERENV', 'SERVICE_NAME') FROM DUAL;
    A instrução SQL retorna as seguintes informações sobre o interpretador com bind médio:
    LGKFDTOOBOQK48I_CWDP_medium.adwc.oraclecloud.com
    Validar vinculação do interpretador de um parágrafo após a alteração
    Neste exemplo, com referência à captura de tela:
    • LGKFDTOOBOQK48I é o nome do tenant
    • CWDP é o nome do banco de dados
    • medium é o nome do serviço
    • adwc.oraclecloud.com é o domínio

    Observação:

    Para o restante dos parágrafos deste notebook, a vinculação do interpretador é o padrão. Você pode validar as associações para cada parágrafo executando a etapa 3.
    Isso conclui a tarefa de alterar a vinculação do interpretador para um parágrafo específico no notebook. O restante dos parágrafos no notebook tem a vinculação padrão para o interpretador.

5.10.2 Definir Binds de Interpretador para Notebooks

Você deve vincular um notebook a um interpretador para extrair dados do banco de dados ou de qualquer origem de dados. Um conjunto padrão de associações de interpretador está disponível.

Você pode definir a ordem das associações do interpretador se tiver mais de um conjunto disponível. Para definir a ordem das associações do interpretador:
  1. Na página Notebook, clique no notebook cujas associações de interpretador você deseja definir.
    O notebook é aberto no modo de edição.
  2. Clique no ícone de engrenagem no painel superior.
    Opções do editor NB
    O painel Definições é aberto listando as associações do interpretador para o notebook.
  3. Arraste e solte os interpretadores para reordenar as associações do interpretador. O primeiro interpretador da lista é o padrão. A ordem das associações de interpretadores é:
    • Baixo (Padrão): Fornece o menor nível de recursos para operações no banco de dados, geralmente execução serial (não paralela). Ele suporta o número máximo de operações simultâneas no banco de dados por vários usuários. O interpretador com baixa prioridade é listado no topo da lista de interpretadores e, portanto, é o padrão.
    • Meio: Fornece um número fixo de CPUs para executar operações no banco de dados em paralelo, quando possível. Ele suporta um número limitado de usuários simultâneos, geralmente 1,25 vezes o número de CPUs alocadas para o banco de dados plugável.
    • Alto: Fornece o nível mais alto de CPUs para executar operações no banco de dados em paralelo, até o número de CPUs alocadas para o banco de dados plugável. Ele oferece o mais alto desempenho, mas suporta o número mínimo de operações simultâneas no banco de dados, geralmente 3.
    Esta é a ordem de vinculação inicial dos intérpretes. Você pode alterar a ordem das associações do interpretador.
  4. Clique em Salvar.

5.10.3 Verificar Binds de Interpretador

Depois de definir e alterar a ordem das associações de interpretadores, você poderá verificar se está usando o interpretador SQL, PL/SQL, R ou Python em um determinado notebook. Você usa uma instrução SQL para exibir e verificar as informações de binding do interpretador sobre seu notebook.

Para notebooks Python, o binding do interpretador é usado para todos os parágrafos python.

Observação:

Para notebooks Python, não substitua a vinculação do interpretador no nível de parágrafo.
Para verificar a vinculação do interpretador de notebooks:
  1. Abra o notebook para o qual deseja verificar a vinculação do interpretador.
  2. Execute a seguinte instrução SQL:
    %sql
    SELECT SYS_CONTEXT ('USERENV', 'SERVICE_NAME') FROM DUAL;

    A instrução SQL fornece o nome do serviço ao qual uma determinada sessão está conectada.

  3. Clique em Executar.
    A instrução SQL retorna as informações sobre o interpretador, a ordem da vinculação e o nome do serviço. O resultado é exibido no seguinte formato tenantname__databasename_ servicename.domain. Aqui:
    • HDY7RUSKGDMPHN2 é o nome do tenant
    • PDB1 é o nome do banco de dados
    • low é a ordem de vinculação do interpretador
    • adwc.oraclecloud.com é o nome do domínio
    Validação de vinculação do interpretador