O JindoTable coleta estatísticas de acesso frequente a tabelas e partições, gerencia o armazenamento em camadas e otimiza a organização das tabelas na camada de armazenamento.
Pré-requisitos
Antes de começar, verifique se você tem:
Java Development Kit (JDK) 8 instalado na máquina local
Um cluster E-MapReduce (EMR) V3.30.0 ou posterior
Para obter detalhes sobre a criação de um cluster EMR, consulte Crie um cluster.
Comandos
O JindoTable oferece os comandos abaixo. Especifique tabelas no formato database.table e partições no formato partitionCol1=1,partitionCol2=2,....
|
Comando |
Descrição |
|
Consulta as tabelas ou partições mais acessadas em uma janela de tempo |
|
|
Identifica as tabelas ou partições ociosas há mais tempo |
|
|
Armazena dados da tabela ou partição em cache no disco local |
|
|
Remove dados da tabela ou partição do cache no disco local |
|
|
Altera a classe de armazenamento dos dados da tabela ou partição para Archive ou Infrequent Access |
|
|
Restaura dados arquivados para a classe de armazenamento Standard ou Infrequent Access |
|
|
Visualize o status de armazenamento de uma tabela ou partição |
|
|
Otimiza a organização dos dados da tabela na camada de armazenamento |
|
|
Lista todas as partições de uma tabela particionada ou exibe detalhes de armazenamento de uma tabela não particionada |
|
|
Exibe detalhes de armazenamento de uma partição específica |
|
|
Lista todas as tabelas em um banco de dados |
|
|
Exporta uma tabela MaxCompute para um cluster EMR ou Object Storage Service (OSS) |
Para operações de arquivamento e migração de dados no modo SDK, consulte -archiveTable and -unarchiveTable e -moveTo.
-accessStat
Consulta as tabelas ou partições mais acessadas em um período especificado em dias, com suas respectivas contagens de acesso.
Sintaxe
jindo table -accessStat -d <days> [-n <topNums>]
Parâmetros
|
Parâmetro |
Obrigatório |
Padrão |
Descrição |
|
|
Sim |
— |
Número de dias anteriores a incluir na consulta. Deve ser um inteiro positivo. Se definido como |
|
|
Não |
Todos os resultados |
Quantidade de principais resultados a retornar. Deve ser um inteiro positivo. |
Exemplo
Consulte as 20 tabelas ou partições mais acessadas nos últimos sete dias:
jindo table -accessStat -d 7 -n 20
-leastUseStat
Identifica as tabelas ou partições ociosas há mais tempo, classificadas pelo tempo desde o último acesso.
Sintaxe
jindo table -leastUseStat -n <num> [-i | -ignoreNever]
Parâmetros
|
Parâmetro |
Obrigatório |
Padrão |
Descrição |
|
|
Sim |
— |
Quantidade de resultados a retornar. Deve ser um inteiro positivo. |
|
|
Não |
Incluir todos |
Quando especificado, exclui tabelas ou partições nunca acessadas. |
Exemplo
Consulte as 20 tabelas ou partições ociosas há mais tempo:
jindo table -leastUseStat -n 20
-cache
Armazene dados de uma tabela ou partição do OSS ou JindoFS em cache no disco local para acelerar leituras subsequentes.
Para remover dados em cache, use -uncache.
Sintaxe
jindo table -cache -t <dbName.tableName> [-p <partitionSpec>] [-pin]
Parâmetros
|
Parâmetro |
Obrigatório |
Padrão |
Descrição |
|
|
Sim |
— |
Tabela a armazenar em cache. Os dados devem estar no OSS ou JindoFS. |
|
|
Não |
Tabela inteira |
Partição a armazenar em cache. Formato: |
|
|
Não |
Não fixado |
Quando especificado, impede a remoção dos dados em cache quando o espaço estiver baixo. |
Exemplo
Armazene a partição de 16 de março de 2020 da tabela db1.t1 em cache no disco local:
jindo table -cache -t db1.t1 -p date=2020-03-16
-uncache
Remova dados em cache de uma tabela ou partição do disco local.
Para armazenar dados em cache, use -cache.
Sintaxe
jindo table -uncache -t <dbName.tableName> [-p <partitionSpec>]
Parâmetros
|
Parâmetro |
Obrigatório |
Padrão |
Descrição |
|
|
Sim |
— |
Tabela cujos dados em cache serão removidos. Os dados devem estar no OSS ou JindoFS. |
|
|
Não |
Tabela inteira |
Partição cujos dados em cache serão removidos. Formato: |
Exemplos
Remova os dados em cache de toda a tabela db1.t2:
jindo table -uncache -t db1.t2
Remova os dados em cache de uma partição específica da tabela db1.t1:
jindo table -uncache -t db1.t1 -p date=2020-03-16,category=1
-archive
Altere a classe de armazenamento dos dados de uma tabela ou partição. O destino padrão é a classe Archive. Para usar Infrequent Access (IA), adicione -i.
Para restaurar dados arquivados, use -unarchive. Para arquivamento no modo SDK independente do Jindo Namespace Service, consulte -archiveTable.
Sintaxe
jindo table -archive [-a | -i] -t <dbName.tableName> [-p <partitionSpec>]
Parâmetros
|
Parâmetro |
Obrigatório |
Padrão |
Descrição |
|
|
Sim |
— |
Tabela a arquivar. |
|
|
Não |
Classe de armazenamento Archive |
Quando especificado, arquiva explicitamente os dados na classe Archive (comportamento padrão). |
|
|
Não |
Classe de armazenamento Archive |
Quando especificado, arquiva os dados na classe Infrequent Access (IA) em vez de Archive. |
|
|
Não |
Tabela inteira |
Partição a arquivar. Formato: |
Exemplo
Arquive a partição de 12 de outubro de 2020 da tabela db1.t1:
jindo table -archive -t db1.t1 -p date=2020-10-12
-unarchive
Restaure dados arquivados de tabela ou partição para uma classe de armazenamento superior.
Sem flag: converte dados arquivados para a classe de armazenamento Standard.
-o: restaura temporariamente um objeto arquivado. O objeto permanece na classe Archive após a expiração da janela de restauração.-i: converte um objeto arquivado para a classe de armazenamento Infrequent Access (IA).
Para arquivar dados, use -archive.
Sintaxe
jindo table -unarchive [-o | -i] -t <dbName.tableName> [-p <partitionSpec>]
Parâmetros
|
Parâmetro |
Obrigatório |
Padrão |
Descrição |
|
|
Sim |
— |
Tabela a desarquivar. |
|
|
Não |
Standard |
Restaura temporariamente um objeto arquivado sem alterar permanentemente sua classe de armazenamento. |
|
|
Não |
Standard |
Converte dados arquivados para a classe de armazenamento Infrequent Access (IA). |
|
|
Não |
Tabela inteira |
Partição a desarquivar. Formato: |
Exemplos
Restaure temporariamente uma partição específica da tabela db1.t1:
jindo table -unarchive -o -t db1.t1 -p date=2020-03-16,category=1
Converta todas as partições da tabela db1.t2 de Archive para Infrequent Access:
jindo table -unarchive -i -t db1.t2
-status
Visualize o status de armazenamento de dados de uma tabela ou partição.
Sintaxe
jindo table -status -t <dbName.tableName> [-p <partitionSpec>]
Parâmetros
|
Parâmetro |
Obrigatório |
Padrão |
Descrição |
|
|
Sim |
— |
Tabela a inspecionar. |
|
|
Não |
Tabela inteira |
Partição a inspecionar. Formato: |
Exemplos
Visualize o status de armazenamento da tabela db1.t2:
jindo table -status -t db1.t2
Visualize o status de armazenamento da partição de 16 de março de 2020 da tabela db1.t1:
jindo table -status -t db1.t1 -p date=2020-03-16
-optimize
Otimize a organização dos dados de uma tabela na camada de armazenamento para melhorar a eficiência de leitura nas consultas downstream.
Sintaxe
jindo table -optimize -t <dbName.tableName>
Parâmetros
|
Parâmetro |
Obrigatório |
Padrão |
Descrição |
|
|
Sim |
— |
Tabela a otimizar. |
Exemplo
Otimize o layout de armazenamento da tabela db1.t1:
jindo table -optimize -t db1.t1
-showTable
Para tabelas particionadas, liste todas as partições e seus detalhes de armazenamento. Para tabelas não particionadas, exiba os detalhes de armazenamento da própria tabela.
Sintaxe
jindo table -showTable -t <dbName.tableName>
Parâmetros
|
Parâmetro |
Obrigatório |
Padrão |
Descrição |
|
|
Sim |
— |
Tabela a inspecionar. |
Exemplo
Liste todas as partições da tabela db1.t1:
jindo table -showTable -t db1.t1
-showPartition
Exiba os detalhes de armazenamento de uma partição específica.
Sintaxe
jindo table -showPartition -t <dbName.tableName> [-p <partitionSpec>]
Parâmetros
|
Parâmetro |
Obrigatório |
Padrão |
Descrição |
|
|
Sim |
— |
Tabela particionada a inspecionar. |
|
|
Não |
— |
Partição a inspecionar. Formato: |
Exemplo
Exiba os detalhes de armazenamento da partição de 12 de outubro de 2020 da tabela db1.t1:
jindo table -showPartition -t db1.t1 -p date=2020-10-12
-listTables
Liste todas as tabelas em um banco de dados. Se nenhum banco de dados for especificado, o sistema listará as tabelas do banco de dados padrão.
Sintaxe
jindo table -listTables [-db <dbName>]
Parâmetros
|
Parâmetro |
Obrigatório |
Padrão |
Descrição |
|
|
Não |
Banco de dados padrão |
Banco de dados do qual listar as tabelas. |
Exemplos
Liste as tabelas no banco de dados padrão:
jindo table -listTables
Liste as tabelas em db1:
jindo table -listTables -db db1
-dumpmc
Exporte uma tabela MaxCompute para um cluster EMR ou OSS. Os formatos de saída compatíveis são CSV e TFRECORD.
Não codifique seu AccessKey ID e AccessKey secret diretamente nos comandos. Utilize variáveis de ambiente ou um repositório seguro de credenciais.
Sintaxe
jindo table -dumpmc -i <accessId> -k <accessKey> -m <numMaps> -t <tunnelUrl> -project <projectName> -table <tableName> [-p <partitionSpec>] -f <csv|tfrecord> -o <outputPath>
Parâmetros
|
Parâmetro |
Obrigatório |
Padrão |
Descrição |
|
|
|
Sim |
— |
AccessKey ID da sua conta Alibaba Cloud. |
|
|
|
Sim |
— |
AccessKey secret da sua conta Alibaba Cloud. |
|
|
|
Sim |
— |
Número de tarefas map. |
|
|
|
Sim |
— |
Endpoint do Tunnel da virtual private cloud (VPC) onde reside o projeto MaxCompute. |
|
|
|
Sim |
— |
Nome do projeto MaxCompute. |
|
|
|
Sim |
— |
Nome da tabela MaxCompute. |
|
|
|
Não |
Todas as partições |
Filtro de partição. Exemplo: |
|
|
|
tfrecord>` |
Sim |
— |
Formato do arquivo de saída. Valores válidos: |
|
|
Sim |
— |
Caminho de saída. Use um caminho local (por exemplo, |
Exemplos
Exporte uma tabela MaxCompute no formato TFRECORD para um cluster EMR:
jindo table -dumpmc -m 10 -project mctest_project -table t1 \
-t http://dt.xxx.maxcompute.aliyun-inc.com \
-k xxxxxxxxx -i XXXXXX \
-o /tmp/outputtf1 -f tfrecord
Exporte uma tabela MaxCompute no formato CSV para o OSS:
jindo table -dumpmc -m 10 -project mctest_project -table t1 \
-t http://dt.xxx.maxcompute.aliyun-inc.com \
-k xxxxxxxxx -i XXXXXX \
-o oss://bucket1/tmp/outputcsv -f csv