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
}