Todos os produtos
Search
Central de documentação

Simple Log Service:Funções e operadores de array

Última atualização: Jul 03, 2026

Este tópico descreve a sintaxe básica e apresenta exemplos de funções e operadores de array.

O Log Service oferece suporte às seguintes funções e operadores de array.

Importante

Para usar strings em instruções analíticas, coloque-as entre aspas simples (''). Strings sem aspas ou entre aspas duplas ("") indicam nomes de campos ou colunas. Por exemplo,

'status'

indica a string status, enquanto

status

ou

"status"

indica o campo de log status.

Nome da função

Sintaxe

Descrição

SQL

SPL

operador de subscrito

[x]

Retorna o elemento no índice x de um array. Equivale à função element_at.

√

×

função array_agg

array_agg(x)

Retorna um array com todos os valores de x.

√

×

função array_distinct

array_distinct(x)

Remove elementos duplicados de um array.

√

√

função array_except

array_except(x, y)

Retorna a diferença entre dois arrays.

√

√

função array_intersect

array_intersect(x, y)

Retorna a interseção de dois arrays.

√

√

função array_join

array_join(x, delimiter)

Une os elementos de um array em uma string usando o delimitador especificado. Ignora elementos nulos.

Importante

A função array_join retorna um resultado de até 1 KB. Dados que excedem esse limite são truncados.

√

√

array_join(x, delimiter, null_replacement)

Une os elementos de um array em uma string usando o delimitador especificado. Substitui elementos nulos pelo valor null_replacement.

Importante

A função array_join retorna um resultado de até 1 KB. Dados que excedem esse limite são truncados.

√

√

função array_max

array_max(x)

Retorna o valor máximo em um array.

√

√

função array_min

array_min(x)

Retorna o valor mínimo em um array.

√

√

função array_position

array_position(x, element)

Retorna o índice base 1 de um elemento especificado. Retorna 0 se o elemento não existir.

√

√

função array_remove

array_remove(x, element)

Remove um elemento especificado de um array.

√

√

função array_sort

array_sort(x)

Ordena os elementos de um array em ordem crescente. Posiciona elementos nulos ao final.

√

√

função array_transpose

array_transpose(x)

Transpõe um array bidimensional (um array de arrays) trocando linhas por colunas.

√

×

função array_union

array_union(x, y)

Retorna a união de dois arrays.

√

×

função cardinality

cardinality(x)

Retorna o número de elementos em um array.

√

√

função concat

concat(x, y…)

Concatena vários arrays em um único array.

√

×

função contains

contains(x, element)

Retorna true se o array contiver o elemento especificado e false caso contrário.

√

×

função element_at

element_at(x, y)

Retorna o elemento no índice y de um array.

√

×

função filter

filter(x, lambda_expression)

Filtra um array usando uma expressão lambda e retorna apenas os elementos que satisfazem a expressão.

√

√

função flatten

flatten(x)

Converte um array bidimensional em unidimensional.

√

×

função reduce

reduce(x, lambda_expression)

Reduz um array a um único valor aplicando uma expressão lambda aos seus elementos.

√

√

função reverse

reverse(x)

Inverte a ordem dos elementos em um array.

√

√

função sequence

sequence(x, y)

Retorna um array de valores consecutivos e crescentes dentro de um intervalo especificado. O incremento padrão é 1.

√

√

sequence(x, y, step)

Retorna um array de valores consecutivos e crescentes dentro de um intervalo especificado, com incremento personalizado.

√

√

função shuffle

shuffle(x)

Embaralha os elementos de um array.

√

√

função slice

slice(x, start, length)

Retorna um subconjunto de um array.

√

√

função transform

transform(x, lambda_expression)

Transforma cada elemento de um array usando uma expressão lambda.

√

√

função zip

zip(x, y...)

Mescla vários arrays em um único array bidimensional. Elementos no mesmo índice dos arrays de entrada formam um novo subarray.

√

√

função zip_with

zip_with(x, y, lambda_expression)

Mescla dois arrays em um único array aplicando uma expressão lambda a cada par de elementos correspondentes.

√

×

Operador de subscrito

O operador de subscrito retorna o elemento no índice x de um array. Ele equivale à função element_at.

Syntax

[x]

Parameters

Parâmetro

Descrição

x

Índice base 1 do elemento a recuperar de um array. O valor deve ser do tipo bigint.

Return value type

O valor retornado tem o mesmo tipo de dados dos elementos do array.

Examples

Este exemplo retorna o primeiro elemento do campo number.

  • Campo de exemplo

    number:[49,50,45,47,50]
  • Instrução de consulta

    * | SELECT cast(json_parse(number) as array(bigint)) [1]
  • A consulta retorna 49.

Função array_agg

A função array_agg retorna um array com todos os valores de x.

Syntax

array_agg (x)

Parameters

Parâmetro

Descrição

x

O parâmetro pode ser de qualquer tipo de dados.

Return value type

array

Examples

Retorna os valores do campo status como um array.

  • Instrução de consulta

    * | SELECT array_agg(status) AS array
  • Resultados da consulta: O campo array contém um array de códigos de status HTTP (como 200, 202, 204, 303, 304, 401, 402 e 501).

Função array_distinct

Remove elementos duplicados de um array.

Syntax

array_distinct(x)

Parameters

Parâmetro

Descrição

x

Deve ser um array.

Return value type

array

Examples

Remove elementos duplicados do campo number.

  • Campo de exemplo

    number:[49,50,45,47,50]
  • Instrução de consulta

    *| SELECT array_distinct(cast(json_parse(number) as array(bigint)))
  • O resultado da consulta é [49,50,45,47]. O elemento duplicado 50 foi removido do array original.

Função array_except

A função array_except retorna a diferença entre dois arrays.

Syntax

array_except(x, y)

Parameters

Parâmetro

Descrição

x

Deve ser um array.

y

Deve ser um array.

Return value type

array

Examples

Calcule a diferença entre os arrays [1,2,3,4,5] e [1,3,5,7].

  • Instrução de consulta

    * | SELECT array_except(array[1,2,3,4,5],array[1,3,5,7])
  • A consulta retorna [2,4].

Função array_intersect

Calcula a interseção de dois arrays.

Syntax

array_intersect(x, y)

Parameters

Parâmetro

Descrição

x

Um array.

y

Um array.

Return value type

array

Examples

Calcula a interseção dos arrays [1,2,3,4,5] e [1,3,5,7].

  • Instrução de consulta e análise

    * | SELECT array_intersect(array[1,2,3,4,5],array[1,3,5,7])
  • O resultado da consulta e análise é [1,3,5].

Função array_join

Concatena elementos de array em uma string usando um delimitador especificado.

Syntax

  • Concatena elementos de array em uma string usando um delimitador. Ignora elementos nulos.

    array_join(x, delimiter)
  • Concatena elementos de array em uma string usando um delimitador. Substitui elementos nulos por null_replacement.

    array_join(x, delimiter,null_replacement)

Parameters

Parâmetro

Descrição

x

Array de entrada.

delimiter

String usada para separar os elementos do array.

null_replacement

String usada para substituir elementos nulos.

Return value type

varchar.

Examples

Este exemplo concatena os elementos do array [null, 'Log', 'Service'] em uma string usando espaço como delimitador. O elemento nulo é substituído por 'Alicloud'.

  • Consulta

    * | SELECT array_join(array[null,'Log','Service'],' ','Alicloud')
  • Resultados: O valor da coluna _col0 é Alicloud Log Service.

Função array_max

Retorna o valor máximo em um array.

Syntax

array_max(x) 

Parameters

Parâmetro

Descrição

x

A entrada deve ser um array.

Importante

Se o array contiver um elemento nulo, a função retorna null.

Return value type

O valor retornado tem o mesmo tipo de dados dos elementos do array.

Examples

Este exemplo encontra o valor máximo em um array de números.

  • Campo de exemplo

    number:[49,50,45,47,50]
  • Instrução de consulta

    *| SELECT array_max(try_cast(json_parse(number) as array(bigint))) AS max_number
  • Resultados da consulta: O valor de max_number é 50.

Função array_min

Retorna o valor mínimo em um array.

Syntax

array_min(x) 

Parameters

Parâmetro

Descrição

x

Array de entrada.

Importante

Se o array contiver um elemento nulo, a função retorna null.

Return value type

O valor retornado tem o mesmo tipo de dados dos elementos do array.

Examples

Encontre o valor mínimo em um array de números.

  • Campo de exemplo

    number:[49,50,45,47,50]
  • Instrução de consulta

    *| SELECT array_min(try_cast(json_parse(number) as array(bigint))) AS min_number
  • A consulta retorna 45.

Função array_position

A função array_position retorna o índice base 1 de um elemento em um array. Retorna 0 se o elemento não for encontrado.

Syntax

array_position(x, element)

Parameters

Parâmetro

Descrição

x

Array onde pesquisar.

element

Elemento a encontrar no array.

Nota

Se o elemento a ser encontrado for nulo, a função retorna null.

Return value type

Retorna um valor bigint.

Examples

Encontra o índice de 45 no array [49,45,47].

  • Instrução de consulta e análise

    * | SELECT array_position(array[49,45,47],45)
  • O resultado é 2, indicando que o elemento 45 está no índice 2 do array.

Função array_remove

A função array_remove remove todas as ocorrências de um elemento especificado de um array.

Syntax

array_remove(x, element)

Parameters

Parâmetro

Descrição

x

Array de entrada.

element

Elemento a remover do array.

Nota

Se o elemento for nulo, a função retorna null.

Return value type

Retorna um array.

Examples

Remove 45 do array [49,45,47].

  • Instrução de consulta e análise

    * | SELECT array_remove(array[49,45,47],45)
  • O resultado é [49,47].

Função array_sort

A função array_sort ordena os elementos de um array em ordem crescente e posiciona quaisquer elementos nulos ao final.

Syntax

array_sort(x)

Parameters

Parâmetro

Descrição

x

Array a ordenar.

Return value type

Retorna um array.

Examples

Ordene o array ['b', 'd', null, 'c', 'a'] em ordem crescente.

  • Instrução de consulta

    * | SELECT array_sort(array['b','d',null,'c','a'])
  • O resultado é ["a","b","c","d",null]. Os elementos são ordenados alfabeticamente em ordem crescente e o valor nulo é posicionado ao final.

Função array_transpose

A função array_transpose transpõe um array bidimensional (uma matriz). Ela cria um novo array bidimensional agrupando elementos que compartilham o mesmo índice nos arrays internos.

Syntax

array_transpose(x)

Parameters

Parâmetro

Descrição

x

Entrada deve ser um array bidimensional do tipo array(double).

Return value type

array(double)

Examples

A função agrupa elementos no mesmo índice em cada array interno para formar novos arrays internos. Por exemplo, a partir dos arrays [0,1,2,3], [10,19,18,17] e [9,8,7], a função pega os primeiros elementos (0, 10 e 9) e os agrupa no novo array interno [0.0,10.0,9.0].

  • Instrução de consulta e análise

    * | SELECT array_transpose(array[array[0,1,2,3],array[10,19,18,17],array[9,8,7]])
  • Resultados da consulta e análise: O valor na coluna _col0 é [[0.0,10.0,9.0],[1.0,19.0,8.0],[2.0,18.0,7.0],[3.0,17.0]].

Função array_union

Retorna um array com os elementos da união de dois arrays, sem duplicatas.

Syntax

array_union(x, y)

Parameters

Parâmetro

Descrição

x

Deve ser um array.

y

Deve ser um array.

Return value type

array

Examples

Este exemplo calcula a união dos arrays [1,2,3,4,5] e [1,3,5,7].

  • Instrução de consulta

    * | SELECT array_union(array[1,2,3,4,5],array[1,3,5,7])
  • A consulta retorna [1,2,3,4,5,7].

Função cardinality

Retorna o número de elementos em um array.

Syntax

cardinality(x)

Parameters

Parâmetro

Descrição

x

Array de entrada.

Return value type

Retorna um valor bigint.

Examples

Este exemplo conta o número de elementos no campo number.

  • Campo de exemplo

    number:[49,50,45,47,50]
  • Instrução de consulta

    *| SELECT cardinality(cast(json_parse(number) as array(bigint)))
  • A consulta retorna 5, pois o array contém 5 elementos.

Função concat

Concatena vários arrays em um único array.

Syntax

concat(x, y…)

Parameters

Parâmetro

Descrição

x

Deve ser um array.

y

Deve ser um array.

Return value type

array

Examples

Concatene os arrays ['red','blue'] e ['yellow','green'].

  • Instrução de consulta

    * | SELECT concat(array['red','blue'],array['yellow','green'])
  • A consulta retorna ["red","blue","yellow","green"].

Função contains

Verifica se um array contém um elemento especificado. Retorna true se encontrado.

Syntax

contains(x, element)

Parameters

Parâmetro

Descrição

x

Array a verificar.

element

Elemento a pesquisar no array.

Return value type

boolean

Examples

Verifica se o campo region contém 'cn-beijing'.

  • Campo de exemplo

    region:["cn-hangzhou","cn-shanghai","cn-beijing"]
  • Instrução de consulta

    *| SELECT contains(cast(json_parse(region) as array(varchar)),'cn-beijing')
  • A consulta retorna uma coluna chamada _col0 com o valor true, indicando que o array region contém cn-beijing.

Função element_at

Retorna o elemento no índice y de um array.

Syntax

element_at(x, y)

Parameters

Parâmetro

Descrição

x

Array do qual recuperar um elemento.

y

Índice base 1 do tipo bigint do elemento a recuperar do array.

Return value type

O valor retornado tem o mesmo tipo de dados dos elementos no array.

Examples

Este exemplo recupera o segundo elemento de um array armazenado como string JSON no campo number.

  • Campo de exemplo

    number:[49,50,45,47,50]
  • Instrução de consulta e análise

    * |
    SELECT
      element_at(cast(json_parse(number) AS array(varchar)), 2)
  • A consulta retorna uma coluna chamada _col0 com o valor 50.

Função filter

A função filter filtra um array com base em uma expressão lambda e retorna um novo array contendo apenas os elementos para os quais a expressão é avaliada como verdadeira.

Syntax

filter(x, lambda_expression)

Parameters

Parâmetro

Descrição

x

Array de entrada.

lambda_expression

Expressão lambda. Para mais informações, consulte expressão lambda.

Return value type

Retorna um array.

Examples

Retorna os elementos maiores que 0 do array [5,-6,null,7]. A expressão lambda é x -> x > 0.

  • Instrução de consulta

    * | SELECT filter(array[5,-6,null,7],x -> x > 0)
  • A consulta retorna [5,7].

Função flatten

Achata um array bidimensional em um array unidimensional.

Syntax

flatten(x)

Parameters

Parâmetro

Descrição

x

Array bidimensional a achatar. O valor deve ser um array.

Return value type

Retorna um array unidimensional.

Examples

Este exemplo achata um array bidimensional em um array unidimensional.

  • Instrução de consulta

    * | SELECT flatten(array[array[1,2,3,4],array[5,2,2,4]])
  • Resultados da consulta e análise: A coluna _col0 contém [1,2,3,4,5,2,2,4].

Função reduce

A função reduce aplica uma expressão lambda a um array e agrega seus elementos em um único valor.

Syntax

reduce(array, initialState, inputFunction, outputFunction)

Parameters

Parâmetro

Descrição

array

Array de entrada de elementos bigint.

initialState, inputFunction, outputFunction

Define a lógica de redução, incluindo estado inicial, função de entrada que processa cada elemento e função de saída que finaliza o resultado. Para mais informações, consulte expressão lambda.

Return value type

bigint

Examples

Calcula a soma dos elementos no array [5, 20, 50].

  • Instrução de consulta

    * | SELECT reduce(array[5, 20, 50], 0, (s, x) -> s + x, s -> s)
  • Resultado da consulta: 75

Função reverse

Inverte a ordem dos elementos em um array.

Syntax

reverse(x)

Parameters

Parâmetro

Descrição

x

Array a inverter.

Return value type

Array com elementos em ordem inversa.

Examples

Inverte os elementos no array [1,2,3,4,5].

  • Instrução de consulta

    * | SELECT reverse(array[1,2,3,4,5])
  • Resultados da consulta: [5,4,3,2,1].

Função sequence

A função sequence retorna um array de valores consecutivos e incrementais dentro de um intervalo especificado.

Syntax

  • Usa incremento padrão de 1.

    sequence(x, y)
  • Usa incremento personalizado.

    sequence(x, y, step)

Parameters

Parâmetro

Descrição

x

Valor inicial da sequência. Tipos de dados suportados: bigint e timestamp. Para timestamp, use um timestamp UNIX ou expressão de data e hora.

y

Valor final da sequência. Tipos de dados suportados: bigint e timestamp. Para timestamp, use um timestamp UNIX ou expressão de data e hora.

step

Valor do incremento.

Quando x e y são expressões de data e hora, o parâmetro step deve estar em um dos seguintes formatos:

  • interval ' n' year to month: Intervalo de n anos.

  • interval 'n' day to second: Intervalo de n dias.

Return value type

array

Examples

  • Retorne números pares de 0 a 10.

    • Instrução de consulta

      * | SELECT sequence(0,10,2)
    • A consulta retorna [0,2,4,6,8,10].

  • Retorne as datas de 23 de outubro de 2017 a 12 de agosto de 2021, com intervalo de um ano.

    • Instrução de consulta

      ww* | SELECT  sequence(from_unixtime(1508737026),from_unixtime(1628734085),interval '1' year to month )
    • Resultado da consulta

      ["2017-10-23 13:37:06.000","2018-10-23 13:37:06.000","2019-10-23 13:37:06.000","2020-10-23 13:37:06.000"]
  • Retorne os timestamps UNIX entre 1628733298 e 1628734085 com intervalo de 60 segundos.

    • Instrução de consulta

      * | SELECT  sequence(1628733298,1628734085,60)
    • No resultado, o campo _col0 contém o array de timestamps [1628733298,1628733358,1628733418,1628733478,1628733538,1628733598,1628733658,1628733718,1628733778,1628733838,1628733898,1628733958,1628734018,1628734078].

Função shuffle

Embaralha aleatoriamente os elementos de um array.

Syntax

shuffle(x)

Parameters

Parâmetro

Descrição

x

Deve ser um array.

Return value type

Retorna um array.

Examples

Este exemplo retorna uma permutação aleatória do array [1,2,3,4,5].

  • Instrução de consulta e análise

    *| SELECT shuffle(array[1,2,3,4,5])
  • Resultados da consulta e análise: A consulta retorna uma única coluna, _col0, contendo um array reordenado aleatoriamente. Exemplos de valores incluem [3,1,2,4,5], [5,1,2,4,3] e [2,5,3,1,4].

Função slice

Retorna um subconjunto de um array.

Syntax

slice(x, start, length)

Parameters

Parâmetro

Descrição

x

Array de entrada.

start

Índice inicial base 1 do fatiamento.

  • Se start for negativo, o índice é contado a partir do final do array.

  • Se start for positivo, o índice é contado a partir do início do array.

length

Número de elementos a incluir no subconjunto.

Return value type

array

Examples

Este exemplo retorna um subconjunto de dois elementos do array [1,2,4,5,6,7,7], começando no terceiro elemento.

  • Instrução de consulta e análise

    * | SELECT slice(array[1,2,4,5,6,7,7],3,2)
  • Resultados da consulta e análise: A coluna _col0 contém [4,5].

Função transform

A função transform aplica uma expressão lambda a cada elemento de um array.

Syntax

transform(x, lambda_expression)

Parameters

Parâmetro

Descrição

x

Deve ser um array.

lambda_expression

Expressão lambda a aplicar. Para mais informações, consulte expressão lambda.

Return value type

Array.

Examples

Este exemplo adiciona 1 a cada elemento no array [5,6].

  • Instrução de consulta e análise

    * | SELECT transform(array[5,6],x -> x + 1)
  • A consulta retorna [6,7].

Função zip

A função zip mescla vários arrays em um array bidimensional. Ela agrupa elementos com o mesmo índice dos arrays de entrada para formar arrays aninhados.

Syntax

zip(x, y...) 

Parameters

Parâmetro

Descrição

x

Deve ser um array.

y

Deve ser um array.

Return value type

Retorna um array bidimensional.

Examples

Este exemplo mescla os arrays [1,2,3], ['1b',null,'3b'] e [1,2,3] em um array bidimensional.

  • Instrução de consulta e análise

    * | SELECT zip(array[1,2,3], array['1b',null,'3b'],array[1,2,3])
  • A coluna _col0 nos resultados da consulta e análise retorna [[1,"1b",1],[2,null,2],[3,"3b",3]]. A função agrupa elementos dos arrays de entrada pelo índice compartilhado.

Função zip_with

A função zip_with mescla dois arrays aplicando uma expressão lambda aos elementos correspondentes.

Syntax

zip_with(x, y, lambda_expression)

Parameters

Parâmetro

Descrição

x

Primeiro array de entrada.

y

Segundo array de entrada.

lambda_expression

Expressão lambda que especifica como combinar os elementos. Para mais informações, consulte expressão lambda.

Return value type

array

Examples

Este exemplo usa a expressão lambda (x, y) -> x + y para somar os elementos correspondentes dos arrays [1,2] e [3,4]. A função retorna os resultados em um novo array.

  • Instrução de consulta e análise

    SELECT zip_with(array[1,2], array[3,4],(x,y) -> x + y)
  • Resultados da consulta e análise: O valor na coluna _col0 é [4,6].