O Lindorm Compute Engine permite executar consultas SQL em dados de armazenamento colunar e tabelas largas. Este guia mostra como criar um grupo de recursos, conectar-se a ele e executar sua primeira instrução SQL.
Escolha o tipo de grupo de recursos adequado à sua carga de trabalho:
|
Tipo de grupo de recursos |
Interface |
Mais indicado para |
|
OLAP |
SQL compatível com MySQL |
Consultas interativas, análises de alta concorrência, respostas de baixa latência |
|
ETL |
Spark SQL (serverless) |
Transformações em lote, computações complexas, trabalhos esporádicos ou offline |
Pré-requisitos
Antes de começar, verifique se você tem:
LindormTable ativado. Consulte Criar uma instância
Lindorm Compute Engine ativado. Consulte Ativar o serviço
Endereço IP do seu cliente adicionado à lista de permissões do Lindorm. Consulte Definir uma lista de permissões
Usar um grupo de recursos OLAP
Um grupo de recursos de Processamento Analítico Online (OLAP) oferece uma interface compatível com MySQL. Após a criação, o sistema aloca nós de computação dedicados para consultas analíticas de alta concorrência e baixa latência.
Etapa 1: Criar um grupo de recursos OLAP
Faça login no console do Lindorm. Selecione a região da sua instância no canto superior esquerdo. Na página Instances, clique em ID da instância ou em View Instance Details na coluna Actions.
-
Na página Instance Details, vá até a seção Configurations e clique em Resource Groups na coluna Compute Engine.

-
Na página Resource Group Details, clique em Create Resource Group e defina os seguintes parâmetros:
Parâmetro
Descrição
Resource Group Type
Selecione OLAP.
Resource Group Name
Apenas letras minúsculas e dígitos; máximo de 63 caracteres. Exemplo:
cg0Node Specifications
Selecione as especificações do nó de computação.
Working Nodes in Job
Número de nós de trabalho por job. Valores válidos: [4, 1024]. Padrão:
4 -
Clique em OK.
A criação do grupo de recursos leva cerca de 20 minutos.
-
Na página Resource Group Details, aguarde até que o status mostre Running em Status and Description. Passe o mouse sobre o nome do grupo de recursos para obter seu endpoint interno da Virtual Private Cloud (VPC):
jdbc:mysql://ld-bp1dv48fk0yg0****-olap-proxy-ldps.lindorm.aliyuncs.com:9030 -
Configure o cliente MySQL e conecte-se ao grupo de recursos OLAP usando seu nome de usuário e senha do LindormTable:
mysql -hld-bp1dv48fk0yg0****-olap-proxy-ldps.lindorm.aliyuncs.com -P9030 -uroot -p
Etapa 2: Acessar dados
O grupo de recursos OLAP utiliza dois catálogos para identificar fontes de dados:
|
Catálogo |
Fonte de dados |
Padrão |
|
|
Armazenamento colunar (data lake compatível com Iceberg) |
Sim — selecionado automaticamente ao conectar via MySQL |
|
|
Tabelas largas (LindormTable) |
Não — alterne explicitamente com |
Acessar dados de armazenamento colunar
O armazenamento colunar é um data lake baseado em armazenamento colunar, compatível com o ecossistema Iceberg. Os dados ficam armazenados no mecanismo de arquivos da instância Lindorm.
O catálogo lindorm_columnar é selecionado por padrão. Para alternar para ele explicitamente, execute:
SET CATALOG lindorm_columnar;
As etapas a seguir criam um banco de dados, gravam dados e executam consultas de exemplo.
-
Crie e utilize um banco de dados.
-- Create a database. CREATE DATABASE olapdemo; -- Use the database. USE olapdemo; -
Crie uma tabela e insira dados.
-- Create a table. CREATE TABLE test (id INT, name STRING) ENGINE = iceberg; -- Insert data. INSERT INTO test VALUES (0, 'Jay'), (1, 'Edison'); -
Consulte os dados. Exemplo 1 — filtrar por condição:
SELECT id, name FROM test WHERE id != 0;Resultado:
+------+--------+ | id | name | +------+--------+ | 1 | Edison | +------+--------+Exemplo 2 — agregação:
SELECT count(distinct name) FROM test;Resultado:
+----------------------+ | count(DISTINCT name) | +----------------------+ | 2 | +----------------------+Exemplo 3 — junção:
SELECT * FROM (SELECT id, name FROM test WHERE id != 0) t0 JOIN (SELECT id, name FROM test WHERE id != 2) t1 ON t0.id = t1.id;Resultado:
+------+--------+------+--------+ | id | name | id | name | +------+--------+------+--------+ | 1 | Edison | 1 | Edison | +------+--------+------+--------+ -
Limpe os recursos.
DROP TABLE test; DROP DATABASE olapdemo;
Acessar dados de tabela larga
O grupo de recursos OLAP pode consultar dados do LindormTable usando seus nós de computação dedicados. Apenas operações de leitura são suportadas — não é possível criar tabelas ou gravar dados no LindormTable por meio do grupo de recursos OLAP.
Alterne para o catálogo de tabela larga antes de consultar:
SET CATALOG lindorm_table;
Se você já possui uma tabela larga, pule para as etapas de consulta. Caso contrário, conecte-se ao LindormTable e crie uma tabela de exemplo:
-- Create a database.
CREATE DATABASE test;
-- Use the database.
USE test;
-- Create a table and insert two rows.
CREATE TABLE tb (id varchar, name varchar, address varchar, primary key(id, name));
UPSERT INTO tb (id, name, address) VALUES ('001', 'Jack', 'hz');
UPSERT INTO tb (id, name, address) VALUES ('002', 'Edison', 'bj');
Na interface de linha de comando (CLI) do MySQL conectada ao grupo de recursos OLAP, execute as etapas a seguir.
-
Altere a fonte de dados e selecione o banco de dados.
-- Switch to the wide table catalog. SET CATALOG lindorm_table; -- Use the test database. USE test; -
Consulte dados da tabela larga. Exemplo 1 — recuperar linhas:
SELECT * FROM tb LIMIT 5;Resultado:
+------+--------+---------+ | id | name | address | +------+--------+---------+ | 001 | Jack | hz | | 002 | Edison | bj | +------+--------+---------+Exemplo 2 — contar linhas:
SELECT count(*) FROM tb;Resultado:
+----------+ | count(*) | +----------+ | 2 | +----------+
Usar um grupo de recursos ETL
Um grupo de recursos de extração, transformação e carga (ETL) fornece uma interface Spark SQL serverless. O sistema aloca recursos sob demanda e os libera automaticamente, tornando-o adequado para consultas esporádicas, transformações em lote e relatórios offline.
Etapa 1: Ativar o grupo de recursos
Faça login no console do Lindorm. Selecione a região da sua instância no canto superior esquerdo. Na página Instances, clique em ID da instância ou em View Instance Details na coluna Actions.
-
Na página Instance Details, vá até a seção Configurations e clique em Resource Groups na coluna Compute Engine.

-
Na página Resource Group Details, clique em Create Resource Group e defina os seguintes parâmetros:
Parâmetro Descrição Resource Group Type Selecione ETL. Resource Group Name Apenas letras minúsculas e dígitos; máximo de 63 caracteres. Exemplo: cg0Daily Resource Quota Máximo de horas de CU que o grupo de recursos pode consumir por dia (unidade: CU*Hour). Padrão:100000. Defina como0para não haver limite.ImportanteOs jobs são excluídos imediatamente se esse limite for excedido. Para cargas de trabalho de produção, defina este valor como
0para evitar o encerramento inesperado de jobs.Maximum CPU cores Número máximo de núcleos de CPU para o grupo de recursos. Valores válidos: [100, 100000]. Maximum memory Memória máxima para o grupo de recursos. Valores válidos: [400 GB, 1000000 GB]. Não há valor padrão. Authorize users Usuários autorizados a acessar o grupo de recursos. Padrão: *(todos os usuários). Clique em OK para criar o grupo de recursos.
Etapa 2: Configurar o ambiente
Execute as etapas a seguir em uma instância Elastic Compute Service (ECS) na mesma VPC da sua instância Lindorm.
Instale o Java Development Kit (JDK) 1.8 ou posterior.
Baixe o pacote Spark e descompacte-o.
-
Defina a variável de ambiente
SPARK_HOMEpara o diretório onde você descompactou o pacote.export SPARK_HOME=/path/to/spark/ -
Edite
$SPARK_HOME/conf/beeline.confe configure os seguintes parâmetros:Parâmetro
Descrição
endpointURL JDBC do mecanismo de computação do Lindorm. Consulte Visualizar endpoints.
userNome de usuário do LindormTable.
passwordSenha do LindormTable.
shareResourceIndica se os recursos de computação devem ser compartilhados entre sessões do mesmo usuário. Padrão:
true.compute-groupNome do grupo de recursos ETL. Padrão:
default. -
Acesse
$SPARK_HOME/bine inicie a sessão interativa:Sessões ociosas são liberadas automaticamente após 4 horas. Para monitorar jobs em execução, acesse a Spark UI usando a URL do cluster exibida na saída de inicialização.
./beelineUma conexão bem-sucedida exibe:
Welcome to Lindorm Distributed Processing System (LDPS) !!! Initializing environment. It might take minutes ... Environemnt prepared. You may visit your jdbc cluster by below url: http://alb-boqak6zfns5gzx****.cn-hangzhou.alb.aliyuncsslb.com/proxy/75ce76086b61470da7046bd4c2b7**** Please note -- you are sharing this JDBC cluster between SQL sessions from the same user. The cluster will be released by auto if idle for 4 hours. You may also kill it manually by visiting above web url and clicking 'kill' in tab of 'Query Engine' lindorm-beeline>
Etapa 3: Acessar dados
Todos os exemplos abaixo usam Spark SQL na sessão lindorm-beeline>. O catálogo lindorm_columnar é selecionado por padrão. Use SET CATALOG para alternar entre fontes de dados.
Acessar dados de armazenamento colunar
O armazenamento colunar é um data lake baseado em armazenamento colunar, compatível com o ecossistema Iceberg. Os dados ficam armazenados no mecanismo de arquivos da instância Lindorm. Você pode usar Spark SQL para gravar e consultar esses dados.
O catálogo lindorm_columnar é selecionado por padrão. Para alternar para ele explicitamente, execute:
SET CATALOG lindorm_columnar;
As etapas a seguir criam um banco de dados, gravam dados e executam consultas de exemplo.
-
Crie e utilize um banco de dados.
-- Create a database. CREATE DATABASE etldemo; -- Use the database. USE etldemo; -
Crie uma tabela e insira dados.
-- Create a table. CREATE TABLE test (id INT, name STRING); -- Insert data. INSERT INTO test VALUES (0, 'Jay'), (1, 'Edison'); -
Consulte os dados. Exemplo 1 — filtrar por condição:
SELECT id, name FROM test WHERE id != 0;Resultado:
+------+--------+ | id | name | +------+--------+ | 1 | Edison | +------+--------+Exemplo 2 — agregação:
SELECT count(distinct name) FROM test;Resultado:
+----------------------+ | count(DISTINCT name) | +----------------------+ | 2 | +----------------------+Exemplo 3 — junção:
SELECT * FROM (SELECT id, name FROM test WHERE id != 0) t0 JOIN (SELECT id, name FROM test WHERE id != 2) t1 ON t0.id = t1.id;Resultado:
+------+--------+------+--------+ | id | name | id | name | +------+--------+------+--------+ | 1 | Edison | 1 | Edison | +------+--------+------+--------+ -
Limpe os recursos.
DROP TABLE test; DROP DATABASE etldemo;
Acessar dados de tabela larga
Conexões Spark SQL em um grupo de recursos ETL podem consultar dados do LindormTable usando recursos de computação elásticos. Instruções de Linguagem de Definição de Dados (DDL) — como CREATE TABLE ou DROP TABLE — não são suportadas para o LindormTable por meio desta conexão. Utilize-a apenas para consultas e computações.
Alterne para o catálogo de tabela larga antes de consultar:
SET CATALOG lindorm_table;
Se você já possui uma tabela larga, pule para as etapas de consulta. Caso contrário, conecte-se ao LindormTable e crie uma tabela de exemplo:
-- Create a database.
CREATE DATABASE test;
-- Use the database.
USE test;
-- Create a table and insert two rows.
CREATE TABLE tb (id varchar, name varchar, address varchar, primary key(id, name));
UPSERT INTO tb (id, name, address) VALUES ('001', 'Jack', 'hz');
UPSERT INTO tb (id, name, address) VALUES ('002', 'Edison', 'bj');
Na sessão lindorm-beeline, execute as etapas a seguir.
-
Altere a fonte de dados e selecione o banco de dados.
-- Switch to the wide table catalog. SET CATALOG lindorm_table; -- Use the test database. USE test; -
Consulte dados da tabela larga. Exemplo 1 — recuperar linhas:
SELECT * FROM tb LIMIT 5;Resultado:
+------+--------+---------+ | id | name | address | +------+--------+---------+ | 001 | Jack | hz | | 002 | Edison | bj | +------+--------+---------+Exemplo 2 — contar linhas:
SELECT count(*) FROM tb;Resultado:
+-----------+ | count(1) | +-----------+ | 2 | +-----------+
Próximos passos
Visualizar endpoints — encontre a URL JDBC e os detalhes de conexão do seu grupo de recursos
Spark UI — monitore jobs Spark em execução no seu grupo de recursos ETL