O Simple Log Service envia logs para o Object Storage Service (OSS) e os salva no formato Optimized Row Columnar (ORC), permitindo armazenamento colunar eficiente e análises otimizadas.
Parâmetros
Ao criar uma tarefa de envio de dados para o OSS (nova versão), defina o Storage Format como orc. Em seguida, configure Compression como snappy. Os métodos de compressão suportados incluem none, snappy, gzip e zstd. Na seção ORC Fields, adicione um campo com Key Name __topic__ e Type string, além de outro campo com Key Name concent e Type string. Clique no botão azul + para adicionar um novo campo ou clique em Excluir para remover um campo existente.
A tabela a seguir descreve os parâmetros específicos do formato ORC.
|
Parâmetro |
Descrição |
|
Key Name |
Campos de log enviados ao OSS. Visualize os campos disponíveis na aba Raw Logs de um Logstore. Adicione os nomes dos campos individualmente. A tarefa de envio preserva a ordem dos campos e utiliza seus nomes como nomes das colunas ORC. Os campos de log elegíveis para envio ao OSS incluem campos reservados como __time__, __topic__ e __source__. Para mais informações, consulte Campos reservados. O valor de uma coluna no arquivo ORC será nulo nas seguintes situações:
Nota
|
|
Type |
Tipo de dados do campo de log. Tipos ORC suportados: STRING, BOOLEAN, INT32, INT64, FLOAT e DOUBLE. Durante o envio, os campos de log são convertidos de STRING para o tipo ORC especificado. Se a conversão falhar, o valor da coluna será nulo. |
Exemplos de URLs de objetos no OSS
Os logs enviados são armazenados como objetos nos buckets do OSS. A tabela abaixo apresenta exemplos de URLs desses objetos.
Caso você especifique um sufixo de objeto ao criar a tarefa de envio de dados, os objetos no OSS utilizarão esse sufixo.
Se nenhum sufixo for definido durante a criação da tarefa, os objetos no OSS receberão um sufixo gerado automaticamente com base no tipo de compressão.
|
Tipo de compressão |
Sufixo do objeto |
URL de exemplo |
Exemplo |
|
Sem compressão |
Quando um sufixo é especificado, ele prevalece. Exemplo: .suffix. |
oss://oss-shipper-chengdu/ecs_test/2022/01/26/20/54_1453812893059571256_937.suffix |
Baixe o objeto do OSS para seu computador e utilize as ferramentas ORC para abri-lo. |
|
Na ausência de um sufixo especificado, .orc é utilizado como padrão. |
oss://oss-shipper-chengdu/ecs_test/2022/01/26/20/54_1453812893059571256_937.orc |
||
|
Snappy |
Caso defina um sufixo personalizado, ele será aplicado. Exemplo: .suffix. |
oss://oss-shipper-chengdu/ecs_test/2022/01/26/20/54_1453812893059571256_937.suffix |
|
|
Se não houver sufixo definido, .snappy.orc será usado automaticamente. |
oss://oss-shipper-chengdu/ecs_test/2022/01/26/20/54_1453812893059571256_937.snappy.orc |
||
|
Zstandard |
Ao especificar um sufixo, este terá precedência. Exemplo: .suffix. |
oss://oss-shipper-chengdu/ecs_test/2022/01/26/20/54_1453812893059571256_937.suffix |
|
|
Sem definição de sufixo, o sistema aplica .zst.orc por padrão. |
oss://oss-shipper-chengdu/ecs_test/2022/01/26/20/54_1453812893059571256_937.zst.orc |
Consumo de dados
Processe os dados ORC enviados ao OSS utilizando E-MapReduce, Spark ou Hive. Para mais detalhes, consulte LanguageManual DDL.
-
Também é possível inspecionar arquivos ORC diretamente via ferramentas de linha de comando.
Utilize as ferramentas ORC para visualizar metadados e ler dados de arquivos ORC. Baixe o orc-tools-1.7.2-uber.jar no repositório Maven para validar os dados enviados.
-
Visualizar metadados
-
Execute o seguinte comando:
java -jar ~/Downloads/orc-tools-1.7.2-uber.jar meta -p file.orc -
Saída:
Processing data file /Users/xx/file.orc [length: 200779] Structure for /Users/xx/file.orc File Version: 0.12 with ORC_CPP_ORIGINAL by ORC C++ 1.7.2 Rows: 124022 Compression: ZSTD Compression size: 65536 Calendar: Julian/Gregorian Type: struct<bucket:string,bucket_region:string> Stripe Statistics: Stripe 1: Column 0: count: 124022 hasNull: false Column 1: count: 124022 hasNull: false min: bucket0 max: sls-training-data sum: 1468133 Column 2: count: 0 hasNull: true File Statistics: Column 0: count: 124022 hasNull: false Column 1: count: 124022 hasNull: false min: bucket0 max: sls-training-data sum: 1468133 Column 2: count: 0 hasNull: true Stripes: Stripe: offset: 3 data: 199856 rows: 124022 tail: 97 index: 578 Stream: column 0 section ROW_INDEX start: 3 length 102 Stream: column 1 section ROW_INDEX start: 105 length 367 Stream: column 2 section ROW_INDEX start: 472 length 109 Stream: column 0 section PRESENT start: 581 length 25 Stream: column 1 section PRESENT start: 606 length 25 Stream: column 1 section LENGTH start: 631 length 38989 Stream: column 1 section DATA start: 39620 length 160794 Stream: column 2 section PRESENT start: 200414 length 23 Stream: column 2 section LENGTH start: 200437 length 0 Stream: column 2 section DATA start: 200437 length 0 Encoding column 0: DIRECT Encoding column 1: DIRECT_V2 Encoding column 2: DIRECT_V2 File length: 200779 bytes Padding length: 0 bytes Padding ratio: 0%
-
-
Ler dados
-
Execute o comando abaixo:
java -jar ~/Downloads/orc-tools-1.7.2-uber.jar data -n 5 file.orc -
Saída:
Processing data file /Users/xx/file.orc [length: 200779] {"bucket":"bucket3","bucket_region":"cn-hangzhou"} {"bucket":"bucket3","bucket_region":"cn-hangzhou"} {"bucket":"bucket4","bucket_region":"cn-hangzhou"} {"bucket":"dashboard-bucket","bucket_region":"cn-hangzhou"} {"bucket":"bucket2","bucket_region":null}
-
Para obter mais informações, execute o comando java -jar orc-tools-1.7.2-uber.jar ou consulte a documentação das ferramentas ORC.
-