

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Conectar-se a uma fonte de dados Oracle
<a name="oracle-datasource-AMG"></a>

**nota**  
Essa fonte de dados é somente para o Grafana Enterprise. Para obter mais informações, consulte [Gerenciar o acesso aos plug-ins do Enterprise](upgrade-to-enterprise-plugins.md).  
Além disso, em espaços de trabalho compatíveis com a versão 9 ou mais recente, essa fonte de dados pode requerer a instalação do plug-in apropriado. Para obter mais informações, consulte [Ampliar o espaço de trabalho com plug-ins](grafana-plugins.md).

## Adicionar a fonte de dados
<a name="datasource-configuration"></a>

 Selecione as **fontes de dados** no painel esquerdo do Grafana. 

 Selecione Adicionar fonte de dados: 

 Insira **oracle** para encontrar a fonte de dados. 

 Insira os detalhes do servidor Oracle. 

 Insira um nome de host (ou endereço IP) junto com o número da porta e o nome de usuário e a senha para se conectar. 

 Com a opção de alternância tnsnames, qualquer entrada válida encontrada no arquivo de configuração tnsnames.ora pode ser usada, junto com a autenticação básica. 

 Semelhante ao exemplo anterior, mas usando Kerberos para autenticação. Consulte o guia de configuração específico do kerberos para obter detalhes sobre como configurar o sistema operacional ou o contêiner do Docker para usar o kerberos. 

 Opcionalmente, altere o fuso horário usado para se conectar ao servidor Oracle e para ser usado por macros com reconhecimento de fuso horário. A configuração padrão é UTC. 

 Salve e teste a fonte de dados. Você deve ver uma mensagem em verde com “Conexão de banco de dados OK”. 

## Usage
<a name="usage-4"></a>

### Macros
<a name="macros-1"></a>

 Para simplificar a sintaxe e permitir partes dinâmicas, como filtros de intervalo de datas, a consulta pode conter macros. O nome da coluna deve estar entre aspas duplas (`"`). 


|  Exemplo de macro  |  Description  | 
| --- | --- | 
|  \$1\$1\$1\$1time(dateColumn)\$1 \$1 Será substituído por uma expressão para renomear a coluna para `time`. Por exemplo, `dateColumn as time` \$1\$1\$1\$1timeEpoch(dateColumn)\$1  |  Será substituído por uma expressão para renomear a coluna para time e converter o valor para carimbo de data e hora Unix (em milissegundos).  | 
|  \$1\$1\$1\$1timeFilter(dateColumn)\$1 \$1 Será substituído por um filtro de intervalo de tempo usando o nome da coluna especificada. Por exemplo, `dateColumn BETWEEN TO\$1DATE('19700101','yyyymmdd') \$1 (1/24/60/60/1000) \$1 1500376552001 AND TO\$1DATE('19700101','yyyymmdd') \$1 (1/24/60/60/1000) \$1 1500376552002` \$1\$1\$1\$1timeFrom()\$1  |  Será substituído pelo início da seleção de hora atualmente ativa convertida no tipo de dados DATE. Por exemplo, .TO\$1DATE('19700101','yyyymmdd') \$1 (1/24/60/60/1000) \$1 1500376552001  | 
|  \$1\$1\$1\$1timeTo()\$1 \$1 Será substituído pelo final da seleção de hora atualmente ativa convertida no tipo de dados `DATE`. \$1\$1\$1\$1timeGroup(dateColumn,"5m")\$1  |  Será substituído por uma expressão utilizável na cláusula GROUP BY.  | 
|  \$1\$1\$1\$1timeGroup(dateColumn,"5m"[, fillvalue])\$1  |  Será substituído por uma expressão utilizável na cláusula GROUP BY. Fornecer um fillValue de valor NULL ou flutuante preencherá automaticamente as séries vazias no intervalo de tempo com esse valor. Por exemplo, timeGroupcreatedAt, ′1m′, 0.\$1\$1\$1timeGroup(dateColumn,"5m", 0)\$1.  | 
|  \$1timeGroup(dateColumn, ‘5m’, NULL) \$1 \$1SameasabovebutNULLwillbeusedasvalueformissingpoints.\$1\$1\$1timeGroup(dateColumn,"5m", previous)\$1  |  O mesmo que acima, mas o valor anterior dessa série será usado como valor de preenchimento; se nenhum valor tiver sido visto ainda, NULL será usado.  | 
|  \$1\$1\$1\$1 unixEpochFilter (DateColumn) \$1 \$1 Será substituído por um filtro de intervalo de tempo usando o nome da coluna especificada com horários representados como timestamp unix (em milissegundos). Por exemplo, `DateColumn >= 1500376552001 AND DateColumn <= 1500376552002` \$1\$1\$1\$1 () \$1 unixEpochFrom  |  Será substituído pelo início da seleção de hora atualmente ativa como carimbo de data e hora do Unix. Por exemplo, .1500376552001  | 
|  \$1\$1\$1\$1unixEpochTo()\$1  |  Será substituído pelo final da seleção de hora atualmente ativa como carimbo de data e hora do Unix. Por exemplo, .1500376552002  | 

 O plug-in também é compatível com uma notação usando chaves `{}`. Use essa notação quando forem necessárias consultas dentro dos parâmetros. 

**nota**  
Use um tipo de notação por consulta. Se a consulta precisar de chaves, todos os macros na consulta deverão usar chaves. 

```
$__timeGroup{"dateColumn",'5m'}
$__timeGroup{SYS_DATE_UTC("SDATE"),'5m'}
$__timeGroup{FROM_TZ(CAST("SDATE" as timestamp), 'UTC'), '1h'}
```

 O editor de consultas tem um link de **SQL gerado** que aparece após a execução de uma consulta, no modo de edição do painel. Quando você escolhe o link, ele se expande e mostra a string SQL bruta interpolada que foi executada. 

### Consultas de tabelas
<a name="table-queries"></a>

 Se a opção de consulta **Formatar como** estiver definida como **Tabela**, você então poderá basicamente fazer qualquer tipo de consulta SQL. O painel de tabela mostrará automaticamente os resultados das colunas e linhas retornadas pela consulta. Você pode controlar o nome das colunas do painel Tabela usando a sintaxe `as` regular de seleção de coluna SQL. 

### Consultas de séries temporais
<a name="time-series-queries"></a>

 Se você definir **Formatar como** como **série temporal**, para uso no painel do grafo, por exemplo, a consulta deverá retornar uma coluna chamada `time` que retorne uma data e hora SQL ou qualquer tipo de dados numéricos representando o Unix epoch em segundos. O Grafana interpreta as colunas DATE e TIMESTAMP sem fuso horário explícito como UTC. Qualquer coluna, exceto `time` e `metric`, é tratada como uma coluna de valor. Você pode retornar uma coluna chamada `metric` que é usada como nome da métrica para a coluna de valor. 

 O código de exemplo a seguir mostra a coluna de `metric`: 

```
SELECT
  $__timeGroup("time_date_time", '5m') AS time,
  MIN("value_double"),
  'MIN' as metric
FROM test_data
WHERE $__timeFilter("time_date_time")
GROUP BY $__timeGroup("time_date_time", '5m')
ORDER BY time
```

### Mais consultas — usando oracle-fake-data-gen
<a name="more-queries---using-oracle-fake-data-gen"></a>

```
SELECT
  $__timeGroup("createdAt", '5m') AS time,
  MIN("value"),
  'MIN' as metric
FROM "grafana_metric"
WHERE $__timeFilter("createdAt")
GROUP BY $__timeGroup("createdAt", '5m')
ORDER BY time
```

 O código de exemplo a seguir mostra um série temporal de dados fictícios. 

```
SELECT
  "createdAt",
  "value"
FROM "grafana_metric"
WHERE $__timeFilter("createdAt")
ORDER BY "createdAt" ASC
```

```
SELECT
  "createdAt" as time,
  "value" as value
FROM "grafana_metric"
WHERE $__timeFilter("createdAt")
ORDER BY time ASC
```

 O exemplo a seguir mostra um resultado de tabela útil. 

```
select tc.table_name Table_name
,tc.column_id Column_id
,lower(tc.column_name) Column_name
,lower(tc.data_type) Data_type
,nvl(tc.data_precision,tc.data_length) Length
,lower(tc.data_scale) Data_scale
,tc.nullable nullable
FROM all_tab_columns tc
,all_tables t
WHERE tc.table_name = t.table_name
```

### Modelos
<a name="templating-3"></a>

 Em vez da codificação rígida dos nomes de servidores, das aplicações e dos sensores em suas consultas de métricas, você pode usar variáveis no lugar deles. As variáveis são mostradas como caixas de seleção suspensas na parte superior do dashboard. Essas caixas suspensas facilitam a alteração dos dados exibidos no dashboard. 

#### Variável de consulta
<a name="query-variable-1"></a>

 Se você adicionar uma variável de modelo do tipo `Query`, poderá escrever uma consulta Oracle que possa retornar itens como nomes de medições, nomes de chave ou valores de chave que são mostrados como uma caixa de seleção suspensa. 

 Por exemplo, você pode ter uma variável que contém todos os valores da coluna `hostname` em uma tabela caso especifique uma consulta como esta na configuração de modelo de *Consulta* de variável. 

```
SELECT "hostname" FROM host
```

 Uma consulta pode retornar várias colunas, e o Grafana criará automaticamente uma lista delas. Por exemplo, a consulta a seguir retornará uma lista com valores de `hostname` e `hostname2`. 

```
SELECT "host.hostname", "other_host.hostname2" FROM host JOIN other_host ON host.city = other_host.city
```

 Para usar macros dependentes do intervalo de tempo, como `$__timeFilter("time_column")` em sua consulta, o modo de atualização da variável do modelo precisa ser definido como *Na alteração do intervalo de tempo*. 

```
SELECT "event_name" FROM event_log WHERE $__timeFilter("time_column")
```

 Outra opção é uma consulta que pode criar uma key/value variável. A consulta deve retornar duas colunas denominadas `__text` e `__value`. O valor da coluna `__text` deve ser exclusivo (se não for exclusivo, o primeiro valor será usado). As opções na lista suspensa terão um texto e um valor que permitem que você tenha um nome amigável como texto e um ID como valor. O código de exemplo a seguir mostra uma consulta com `hostname` como o texto e `id` como o valor. 

```
SELECT "hostname" AS __text, "id" AS __value FROM host
```

 Você também pode criar variáveis aninhadas. Por exemplo, se você tivesse outra variável denominada `region`. Então você pode fazer com que a variável hosts mostre apenas os hosts da região selecionada atualmente com uma consulta como esta (se `region` for uma variável de vários valores, use o operador `IN` de comparação em vez de `=` para comparar com vários valores). 

```
SELECT "hostname" FROM host WHERE region IN('$region')
```

#### Usar variáveis em consultas
<a name="using-variables-in-queries-1"></a>

 Os valores das variáveis do modelo só ficam entre aspas quando a variável do modelo é de `multi-value`. 

 Se a variável for uma variável de vários valores, então use o operador de comparação `IN` em vez de `=` para comparar com vários valores. 

 Há duas sintaxes: 

 `$<varname>` Exemplo com uma variável de modelo denominada `hostname`: 

```
SELECT
  "atimestamp" as time,
  "aint" as value
FROM table
WHERE $__timeFilter("atimestamp") AND "hostname" IN('$hostname')
ORDER BY "atimestamp" ASC
```

 `[[varname]]` Exemplo com uma variável de modelo denominada `hostname`: 

```
SELECT
  "atimestamp" as time,
  "aint" as value
FROM table
WHERE $__timeFilter("atimestamp") AND "hostname" IN('[[hostname]]')
ORDER BY atimestamp ASC
```