O Simple Log Service (SLS) envia dados de log de um LogStore para um bucket do Object Storage Service (OSS) para armazenamento de longo prazo e análise offline. Este tópico descreve como criar uma tarefa de envio de dados para o OSS (nova versão).
Pré-requisitos
Crie um projeto e um LogStore.
Colete os dados de log.
Crie um bucket do OSS na mesma região do projeto SLS. Para mais informações, consulte []]().
A nova versão do envio de dados para o OSS está disponível apenas em regiões específicas. Verifique se o seu projeto reside em uma região compatível.
Regiões compatíveis
O SLS envia dados para o OSS dentro da mesma região. O bucket do OSS deve residir na mesma região do projeto SLS.
A nova versão do envio de dados para o OSS é compatível apenas nas seguintes regiões: China (Hangzhou), China (Shanghai), China (Qingdao), China (Beijing), China (Zhangjiakou), China (Hohhot), China (Ulanqab), China (Chengdu), China (Shenzhen), China (Heyuan), China (Guangzhou), China (Hong Kong), Singapore, Malaysia (Kuala Lumpur), Indonesia (Jakarta), Philippines (Manila), Thailand (Bangkok), Japan (Tokyo), US (Silicon Valley), US (Virginia), Saudi Arabia (Riyadh) e Saudi virtual network operator.
Criar uma tarefa de envio de dados
Faça login no console do Simple Log Service.
-
Na guia Log Storage > Logstores, clique em > à esquerda do LogStore desejado e selecione Data Processing > Export > Object Storage Service.
Passe o ponteiro do mouse sobre Object Storage Service e clique em +.
-
No painel Data Shipping to OSS, configure os parâmetros a seguir e clique em OK.
Defina Shipping Version como New Version. A tabela a seguir descreve os principais parâmetros.
Após criar a tarefa de envio de dados para o OSS, cada shard define sua frequência de envio com base no Batch Size e no Batch Interval. O envio ocorre quando qualquer uma das condições é atendida.
Parâmetro
Descrição
Job Name
Nome exclusivo da tarefa de envio.
Display Name
Nome de exibição da tarefa de envio.
Job Description
Descrição da tarefa de envio para o OSS.
OSS Bucket
Nome do bucket do OSS. > Importante: - O bucket já deve existir, não pode ter o recurso Write Once Read Many (WORM) ativado e deve residir na mesma região do projeto SLS.
OSS Write RAM Role
Concede à tarefa de envio permissões para gravar dados no bucket do OSS. Se o LogStore e o bucket do OSS pertencerem à mesma conta Alibaba Cloud, selecione Default Role. Caso pertençam a contas diferentes, selecione Custom Role. - Default Role: Autoriza a tarefa a gravar dados no bucket do OSS usando a função de sistema
AliyunLogDefaultRoleda Alibaba Cloud. Insira o ARN (Alibaba Cloud Resource Name) da funçãoAliyunLogDefaultRole. Para obter o ARN, consulte []](). - Custom Role: Autoriza a tarefa a gravar dados no bucket do OSS usando uma função personalizada. Conceda as permissões de gravação à função personalizada e insira seu ARN no campo OSS Write RAM Role. Obtenha o ARN conforme os cenários a seguir: - Se o LogStore e o bucket do OSS pertencerem à mesma conta Alibaba Cloud, consulte []](). - Caso pertençam a contas diferentes, consulte []]().LogStore Read RAM Role
Concede à tarefa de envio permissões para ler dados do LogStore. Se o LogStore e o bucket do OSS pertencerem à mesma conta Alibaba Cloud, selecione Default Role. Caso pertençam a contas diferentes, selecione Custom Role. - Default Role: Autoriza a tarefa a ler dados do LogStore usando a função de sistema
AliyunLogDefaultRoleda Alibaba Cloud. Insira o ARN da funçãoAliyunLogDefaultRole. Para obter o ARN, consulte []](). - Custom Role: Autoriza a tarefa a ler dados do LogStore usando uma função personalizada. Conceda as permissões de leitura à função personalizada e insira seu ARN no campo LogStore Read RAM Role.Storage Format
Formato de arquivo usado para armazenar os dados após o envio para o OSS.
Compress
Método de compressão aplicado aos dados armazenados no OSS. - No Compress (none): não aplica compressão. - Compress (snappy): usa o algoritmo snappy para reduzir o espaço de armazenamento no bucket. - Compress (zstd): usa o algoritmo zstd para reduzir o espaço de armazenamento no bucket. - Compress (gzip): usa o algoritmo gzip para reduzir o espaço de armazenamento no bucket.
Ship Tags
O campo tag é reservado do SLS.
Batch Size
Volume de dados de log não comprimidos que deve acumular em um shard antes do início do envio. Valores válidos: 5 a 256. Unidade: MB. Esse valor controla o tamanho aproximado de cada objeto do OSS. O Batch Size mede os dados acumulados após o SLS iniciar a leitura, e não os dados já gravados no serviço. Os dados são lidos e enviados somente quando a condição de Batch Interval também for atendida.
Batch Interval
Tempo máximo que um shard aguarda antes de acionar uma operação de envio. O envio começa quando o tempo especificado decorre desde a chegada da primeira entrada de log no lote atual. Valor padrão: 300. Valores válidos: 300 a 900. Unidade: segundos.
Shipping Latency
Atraso aplicado antes do envio dos dados. Por exemplo, se definido como 3600, os dados serão enviados uma hora depois. Dados gerados às 10:00:00 de 5 de junho de 2023 não serão gravados no bucket do OSS antes das 11:00:00 do mesmo dia.
Start Time Range
Intervalo de tempo da tarefa de envio de dados para o OSS, baseado no momento de recebimento dos logs. Valores válidos: - All: envia dados desde o primeiro log recebido pelo LogStore até a interrupção manual da tarefa. - From Specific Time: envia dados a partir de um horário inicial específico até a interrupção manual da tarefa. - Specific Time Range: envia dados entre um horário inicial e final definidos. A tarefa para automaticamente ao atingir o horário final. O intervalo baseia-se no campo
__tag__:__receive_time__.Time Zone
Fuso horário usado para formatar valores de tempo. Se você configurar tanto o Time Zone quanto o Partition Format, os subdiretórios no bucket do OSS serão gerados conforme suas definições.
Após criar a tarefa, verifique o status e confirme se os dados aparecem no bucket do OSS de destino para garantir que o envio funcione corretamente.
Visualizar dados no OSS
Depois que os dados forem enviados para o OSS, acesse-os pelo console do OSS, pela API do OSS, por um SDK ou por outros métodos.
Formatos de partição
Cada operação de envio corresponde a uma URL de objeto do OSS no formato oss://OSS-BUCKET/OSS-PREFIX/PARTITION-FORMAT_RANDOM-ID. A tabela a seguir descreve os formatos de partição, considerando uma tarefa de envio criada às 19:50:43 de 20 de janeiro de 2022.
OSS-BUCKET representa o nome do bucket do OSS. OSS-PREFIX indica o prefixo do diretório. PARTITION-FORMAT refere-se ao formato da partição, calculado a partir do horário de envio usando a API strptime. RANDOM-ID é o identificador exclusivo de uma operação de envio.
|
Bucket do OSS |
Prefixo do OSS |
Formato de partição |
Sufixo do objeto |
URL do objeto do OSS |
|
test-bucket |
test-table |
%Y/%m/%d/%H/%M |
.suffix |
oss://test-bucket/test-table/2022/01/20/19/50_1484913043351525351_2850008.suffix |
|
test-bucket |
|
year=%Y/mon=%m/day=%d/log_%H%M |
.suffix |
oss://test-bucket/log_ship_oss_example/year=2022/mon=01/day=20/log_1950_1484913043351525351_2850008.suffix |
|
test-bucket |
|
ds=%Y%m%d/%H |
.suffix |
oss://test-bucket/log_ship_oss_example/ds=20220120/19_1484913043351525351_2850008.suffix |
|
test-bucket |
|
%Y%m%d/ |
.suffix |
oss://test-bucket/log_ship_oss_example/20220120/_1484913043351525351_2850008.suffix > Nota: Este formato pode causar falhas de análise em plataformas como o Hive. Recomendamos evitar seu uso. |
|
test-bucket |
|
%Y%m%d%H |
.suffix |
oss://test-bucket/log_ship_oss_example/2022012019_1484913043351525351_2850008.suffix |
Os dados são enviados para o OSS em lotes. Cada operação de envio grava um único objeto contendo um lote de dados. O caminho do objeto é determinado pelo menor valor de receive_time (horário de chegada dos dados no SLS) presente no lote. Considere os seguintes cenários:
No envio de dados em tempo real, por exemplo, a cada cinco minutos, uma operação executada às 00:00:00 de 22 de janeiro de 2022 enviará os dados gravados em um shard do SLS após as 23:55 de 21 de janeiro de 2022. Para analisar todos os dados de 22 de janeiro de 2022, verifique todos os objetos no subdiretório 2022/01/22 do bucket do OSS e confirme se os últimos objetos do subdiretório 2022/01/21 contêm dados referentes a 22 de janeiro de 2022.
-
Ao enviar dados históricos, se o volume de dados no LogStore for pequeno, uma única extração poderá retornar dados de vários dias. Consequentemente, os objetos no subdiretório 2022/01/22 podem conter todos os dados de 23 de janeiro de 2022, sem que exista nenhum objeto no subdiretório 2022/01/23.
Para analisar dados do OSS em plataformas de big data como Hive,
MaxComputeou Alibaba Cloud Data Lake Analytics (DLA), defina o PARTITION-FORMAT no nome do objeto como chave=valor caso deseje usar informações de partição. Exemplo: oss://test-bucket/log_ship_oss_example/year=2022/mon=01/day=20/log_195043_1484913043351525351_2850008.parquet. Neste exemplo, três colunas de partição estão configuradas: year, mon e day.