DataPrime funções de matriz
Este guia fornece um glossário de todas as funções disponíveis no site IBM® Cloud Logs DataPrime para o processamento de matrizes.
arrayContains
Retorna true se uma matriz incluir o elemento especificado, ou false se a matriz não incluir o elemento. Os tipos de elementos suportados incluem string, bool, number, interval,
timestamp, regex e enum.
Essa função é o inverso de inArray.
arrayContains(array: array<T>, element: T): bool
arrayContains também pode ser especificado na notação de método:
(array: array<T>).arrayContains(element: T): bool
Em que:
element- É o elemento a ser verificado na matriz.
array- É a matriz a ser pesquisada. A matriz deve conter elementos do mesmo tipo que
element.
Exemplo
Neste exemplo, você tem um log de firewall que registra IDs bloqueados.
{
"action": "BLOCK",
"client_ip": "134.56.32.98",
"blocked_ips": [
"134.56.32.91",
"134.56.32.93",
"134.56.32.90",
"134.56.32.105"
]
}
Ao verificar se client_ip está contido em blocked_ips, você pode determinar se a solicitação foi feita por um endereço bloqueado. Qualquer uma dessas notações pode ser usada.
create is_blocked_ip from arrayContains(blocked_ips, client_ip)
create is_blocked_ip from blocked_ips.arrayContains(client_ip)
O resultado incluirá um novo campo (is_blocked_ip) com um valor booleano.
{
"action": "BLOCK",
"client_ip": "134.56.32.98",
"blocked_ips": [
"134.56.32.91",
"134.56.32.93",
"134.56.32.90",
"134.56.32.105"
],
"is_blocked_ip": false
}
inArray
Retorna true se o elemento especificado existir na matriz, ou false se o elemento não existir na matriz. Os tipos de elementos suportados incluem string, bool, number, interval,
timestamp, regex e enum.
Essa função é o inverso de arrayContains.
inArray(element: T, array: array<T>): bool
inArray também pode ser especificado na notação de método:
(element: T).inArray(array: array<T>): bool
Em que:
element- É o elemento a ser verificado na matriz.
array- É a matriz a ser pesquisada. A matriz deve conter elementos do mesmo tipo que
element.
Exemplo
Neste exemplo, há uma entrada de registro com um endereço IP de cliente.
{
"client_ip": "192.168.1.105"
}
Você deseja verificar se o valor client_ip existe em uma matriz de endereços IP bloqueados para poder identificar se uma solicitação deve ser bloqueada. Qualquer uma dessas notações pode ser usada.
filter inArray(client_ip, ['192.168.1.105', '192.168.1.112', '192.168.1.32'])
filter client_ip.inArray(['192.168.1.105', '192.168.1.112', '192.168.1.32'])
O resultado será true, pois 192.168.1.105 está incluído na matriz.
{
"client_ip": "192.168.1.105",
"is_blocked": true
}