Este tópico descreve como criar uma tabela externa para associar o Simple Log Service (SLS) ao Object Storage Service (OSS).
Pré-requisitos
Logs coletados. Para mais informações, consulte Data collection.
Índice ativado e configurado. Para mais informações, consulte Create an index.
Bucket do OSS criado. Para mais informações, consulte Create a bucket in the console.
-
Arquivo CSV carregado no bucket do OSS. Para mais informações, consulte Upload files.
ImportanteÉ possível associar vários arquivos do OSS. O tamanho máximo por arquivo é de 50 MB. Não há suporte para arquivos compactados nem para expressões regulares nos parâmetros.
Benefícios
O uso de consultas federadas com o Object Storage Service (OSS) oferece as seguintes vantagens:
Redução de custos: armazene dados pouco atualizados no OSS. Pague apenas pelo armazenamento de baixo custo e leia dados pela rede interna para evitar taxas de transferência.
Menor sobrecarga operacional: utilize uma plataforma leve de análise federada sem precisar mover dados para um único sistema de armazenamento.
Economia de tempo: analise dados com SQL e visualize resultados em segundos. Salve consultas analíticas frequentes como relatórios e visualize os resultados sob demanda.
Procedimento
Faça login no console do Simple Log Service.
-
Na seção Projects, clique em no projeto desejado.

-
Na guia , clique em no logstore desejado.

-
Insira uma instrução de consulta e análise e clique em Search & Analyze.
Use SQL para definir uma tabela externa virtual que mapeie arquivos no OSS.
* | create table <foreign_table_name> (<schema>) with (endpoint='oss-cn-<your_region>-internal.aliyuncs.com',accessid='<your_accesskey_id>',accesskey='<your_accesskey_secret>',bucket='<your_bucket_name>',objects=ARRAY['my.csv'],type='oss')Na instrução de consulta, defina o nome da tabela externa, o schema da tabela e outros parâmetros. Use a cláusula
WITHpara especificar os detalhes de conexão com o OSS e as informações do arquivo de destino. A tabela a seguir descreve os parâmetros.Parâmetro
Descrição
Exemplo
Nome da tabela externa
Nome da tabela externa virtual.
user_meta1
Schema
Define as propriedades da tabela, incluindo nomes de colunas e tipos de dados. Os tipos de coluna compatíveis são bigint, boolean, double e varchar.
(userid bigint, nick varchar, gender varchar, province varchar, age bigint)
Endpoint
Endpoint para acessar o OSS. Para mais informações, consulte Regions and endpoints.
ImportanteUse obrigatoriamente um endpoint interno. Não há suporte para endpoints públicos.
oss-cn-hangzhou-internal.aliyuncs.com
Accessid
AccessKey ID e AccessKey secret da sua conta Alibaba Cloud. Recomendamos usar o par de AccessKeys de um usuário RAM com permissões para acessar os dados do OSS. Para saber como conceder permissões a um usuário RAM, consulte Grant permissions to a RAM user. Para obter um par de AccessKeys, consulte AccessKey pair.
LTAI
Accesskey
yourAccessKeySecret
Bucket
Nome do bucket do OSS que armazena o arquivo CSV.
examplebucket
Objects
Arquivos ou diretórios de destino no bucket. O parâmetro objects é do tipo
ARRAYe pode conter múltiplos arquivos ou diretórios. Observe o seguinte:-
Ao especificar um diretório, o caminho deve terminar com
/. Se você especificar um diretório comotest_dir/, a tabela externa será associada a todos os arquivos CSV nesse diretório do OSS dentro do bucket correspondente. -
Limitação: o número total de arquivos não pode exceder 100.
-
'user.csv'
-
'test_dir/'
-
'user.csv','test_dir/','my_dir/'
Type
Defina como oss para indicar que o tipo da tabela externa é Object Storage Service (OSS).
oss
Exemplo de comando:
* | create table user_meta1 ( userid bigint, nick varchar, gender varchar, province varchar, age bigint) with ( endpoint='oss-cn-hangzhou-internal.aliyuncs.com',accessid='yourAccessKeyID',accesskey='yourAccessKeySecret',bucket='examplebucket',objects=ARRAY['my.csv'],type='oss')A operação terá êxito se o campo result na saída for true.

-
-
Verifique se a tabela externa foi criada com sucesso.
Execute a instrução a seguir. Substitua <foreign_table_name> pelo nome da tabela externa definido na Etapa 4. Se o comando retornar o conteúdo da tabela, a criação foi bem-sucedida.
* | select * from <foreign_table_name> -
Use uma cláusula
JOINpara executar uma consulta federada entre SLS e OSS.Por exemplo, execute a consulta abaixo para unir logs de um Logstore a dados de um arquivo no OSS. A união ocorre pelo campo
useridpara enriquecer seus dados de log.NotaOs logs coletados devem conter um campo
userid.* | select * from <logstore> l join <foreign_table_name> u on l.userid = u.useridParâmetro
Descrição
Exemplo
Logstore
Nome do Logstore a ser consultado.
test_LogStore
Tabela externa
Nome da tabela externa definida na Etapa 4.
user_meta1

Para mais informações sobre práticas recomendadas, consulte Associate a Logstore with an OSS foreign table for query and analysis.