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].