Bem-vindo ao guia de introdução do AnalyticDB for MySQL Data Warehouse Edition. O AnalyticDB for MySQL é um data warehouse em tempo real, gerenciado na nuvem, com escala de petabytes e alta concorrência, desenvolvido para cargas de trabalho de processamento analítico online (OLAP). Este guia mostra como usar um cluster do Data Warehouse Edition.
O Data Warehouse Edition não está mais disponível para novas compras. Adquira o Enterprise Edition ou o Basic Edition. Caso já tenha adquirido um cluster do Data Warehouse Edition, continue consultando este guia para usar seu cluster do Data Warehouse Edition.
Fluxo de trabalho
Se você está começando agora no AnalyticDB for MySQL Data Warehouse Edition, recomendamos a leitura prévia dos seguintes tópicos:
Visão geral do produto: Conheça os conceitos, benefícios e casos de uso do AnalyticDB for MySQL.
Preços: Entenda os detalhes de preços e métodos de faturamento do AnalyticDB for MySQL.
Início rápido (este guia): Apresenta um tutorial sobre como usar um cluster do AnalyticDB for MySQL Data Warehouse Edition.
Etapa 1: Crie uma conta de banco de dados
O AnalyticDB for MySQL oferece suporte a dois tipos de contas de banco de dados: contas privilegiadas e contas padrão. Para mais informações sobre as diferenças entre elas, consulte Tipos de conta de banco de dados.
Crie uma conta privilegiada
Faça login no console do AnalyticDB for MySQL. No canto superior esquerdo do console, selecione uma região. No painel de navegação à esquerda, clique em Clusters. Localize o cluster que deseja gerenciar e clique no ID do cluster.
No painel de navegação à esquerda, clique em Accounts.
Na página Accounts, clique em Create Privileged Account.
-
No painel Create Account, configure os parâmetros.
Parâmetro
Descrição
Database Account
Nome da conta privilegiada. Insira um nome que atenda aos requisitos exibidos na tela.
Account Type
Para um cluster do Data Warehouse Edition, este parâmetro é definido automaticamente como Privileged Account e não pode ser alterado.
New Password
Senha da conta privilegiada. Insira uma senha que atenda aos requisitos exibidos na tela.
Confirm Password
Insira a senha novamente para confirmação.
Description
Opcional. Insira uma descrição para a conta como referência futura.
Clique em OK para criar a conta.
Crie e autorize uma conta padrão
Contas padrão criadas por meio de instruções SQL em um cluster do Data Warehouse Edition não aparecem no console.
Para criar uma conta de banco de dados, consulte CREATE USER.
Para conceder permissões a uma conta de banco de dados, consulte GRANT.
Para revogar permissões de uma conta de banco de dados, consulte REVOKE.
Para alterar o nome de uma conta de banco de dados, consulte RENAME USER.
Para excluir uma conta de banco de dados, consulte DROP USER.
Etapa 2: Configure a lista de permissões de IP
-
Por padrão, a lista de permissões de endereços IP contém apenas 127.0.0.1, o que impede o acesso de qualquer dispositivo ao cluster. Adicione endereços IP à lista de permissões para permitir o acesso de outros dispositivos. Por exemplo, adicione o bloco CIDR 10.10.10.0/24 para permitir que qualquer endereço IP no intervalo 10.10.10.X acesse o cluster. Para adicionar vários endereços IP ou blocos CIDR, separe-os por vírgula (,) sem espaços. Exemplo: 192.168.0.1,172.16.213.9.
AvisoNão insira 0.0.0.0 na lista de permissões de endereços IP.
Se o seu endereço IP público mudar frequentemente e você quiser permitir o acesso de todos os endereços IP públicos ao seu cluster do AnalyticDB for MySQL, entre em contato com o suporte técnico.
Uma lista de permissões de endereços IP oferece um alto nível de segurança para o seu cluster do AnalyticDB for MySQL. Recomendamos manter sua lista de permissões atualizada regularmente.
A configuração da lista de permissões de endereços IP não afeta a operação normal do seu cluster do AnalyticDB for MySQL. As alterações na lista de permissões entram em vigor em até um minuto.
Procedimento
Faça login no console do AnalyticDB for MySQL. No canto superior esquerdo do console, selecione uma região. No painel de navegação à esquerda, clique em Clusters. Localize o cluster que deseja gerenciar e clique no ID do cluster.
No painel de navegação à esquerda, clique em Data Security.
-
Na página Whitelist Settings, localize o grupo de lista de permissões default e clique em Modify na coluna Actions.
NotaVocê também pode clicar em Create Whitelist para criar um grupo personalizado.
-
Na caixa de diálogo Edit Whitelist, exclua o endereço IP padrão 127.0.0.1. Insira os endereços IP ou blocos CIDR que precisam acessar o cluster e clique em OK.
NotaPara adicionar o endereço IP público do seu cliente à lista de permissões, determine primeiro o endereço IP. Para mais informações, consulte Conexões.
Etapa 3: Conectar-se ao cluster
O AnalyticDB for MySQL permite conectar-se a um cluster do AnalyticDB for MySQL usando o Data Management Service (DMS), clientes MySQL como Navicat for MySQL, DBeaver, DBVisualizer e SQL WorkBench/J, ferramentas de visualização de BI ou a ferramenta de linha de comando do MySQL. Também é possível conectar-se a um cluster do AnalyticDB for MySQL a partir de uma aplicação, configurando informações como endereço de conexão do cluster, porta e conta de banco de dados.
Usar o DMS para conectar-se ao AnalyticDB for MySQL
Faça login no console do AnalyticDB for MySQL. No canto superior esquerdo do console, selecione uma região. No painel de navegação à esquerda, clique em Clusters. Localize o cluster que deseja gerenciar e clique no ID do cluster.
Na página Cluster Information, clique em Log On to Database no canto superior direito.
-
Na caixa de diálogo exibida, insira as informações de login.
Parâmetro
Descrição
Database Type
O valor padrão é AnalyticDB for MySQL 3.0. Não é necessário alterar.
Instance Region
O valor padrão é a região onde a instância atual está localizada. Não é necessário alterar.
Cluster ID
O valor padrão é o ID do cluster atual. Não é necessário alterar.
Database Account
Nome da conta de banco de dados do cluster.
Database Password
Senha da conta de banco de dados.
NotaSelecione Remember Password para fazer login automaticamente no cluster atual do AnalyticDB for MySQL futuramente, sem precisar inserir a conta e a senha do banco de dados.
NotaAo usar o DMS para fazer login em um cluster do AnalyticDB for MySQL pela primeira vez, o modo de controle é definido como Flexible Management por padrão. Após o login, altere o modo de controle editando a instância. Para mais informações, consulte Editar uma instância e Modos de controle.
Após configurar os parâmetros de login, clique em Test Connection no canto inferior esquerdo. Se o teste de conexão falhar, verifique as informações do cluster, como conta ou senha, com base na mensagem de erro.
O sistema adiciona automaticamente os endereços IP do servidor do DMS à lista de permissões de endereços IP do banco de dados. Caso os endereços IP não sejam adicionados automaticamente, adicione-os manualmente. Para mais informações, consulte Etapa 2: Configure a lista de permissões de IP e Lista de permissões de IP do DMS.
Clique em Log On.
Conectar-se programaticamente ao AnalyticDB for MySQL
Usar a ferramenta de linha de comando do MySQL para conectar-se ao AnalyticDB for MySQL
Usar o cliente de linha de comando do MySQL para conectar-se a um cluster do AnalyticDB for MySQL
Usar um cliente para conectar-se ao AnalyticDB for MySQL
Conectar o AnalyticDB for MySQL a ferramentas de visualização de dados
Etapa 4: Crie um banco de dados
É possível criar no máximo 2.048 bancos de dados em cada cluster.
-
Na aba SQL INFORMATION_SCHEMA, insira uma instrução CREATE DATABASE no SQL Console para criar um banco de dados.
Sintaxe:
CREATE DATABASE [IF NOT EXISTS] $db_name-
Descrição do parâmetro:
db_nameé o nome do banco de dados. O nome deve começar com uma letra minúscula, pode conter letras, dígitos e sublinhados (_), e não pode conter dois ou mais sublinhados consecutivos (_). O nome pode ter até 64 caracteres.NotaO nome do banco de dados não pode ser
analyticdb, pois é um banco de dados interno. -
Exemplos:
create database adb_demo;create database if not exists adb_demo2;
Clique em Execute no canto superior esquerdo. O banco de dados será criado.
Etapa 5: Importar e consultar dados
Pré-requisitos
-
Crie um diretório no Object Storage Service (OSS) para armazenar dados do AnalyticDB for MySQL.
Ative o OSS. Para mais informações, consulte Ativar o OSS.
-
Crie um bucket. Para mais informações, consulte Criar buckets.
ImportanteO bucket do OSS deve estar na mesma região do seu cluster do AnalyticDB for MySQL.
Crie um diretório. Para mais informações, consulte Criar um diretório.
-
Faça upload de um objeto de teste. Para mais informações, consulte Fazer upload de objetos.
Neste exemplo, o objeto
oss_import_test_data.txté carregado no diretório<bucket-name>.oss-cn-hangzhou.aliyuncs.com/adb/no OSS. As linhas são delimitadas por quebras de linha e as colunas por ponto e vírgula (;). Os dados de exemplo são:uid;other 12;hello_world_1 27;hello_world_2 28;hello_world_3 33;hello_world_4 37;hello_world_5 40;hello_world_6 ...
Siga o Guia de Introdução do AnalyticDB for MySQL para concluir os preparativos, como criar um cluster, configurar uma lista de permissões de IP e criar uma conta e um banco de dados. Para mais informações, consulte Procedimento.
Procedimento
Execute a instrução CREATE TABLE para criar uma tabela externa no banco de dados
adb_demo. Para obter informações sobre a sintaxe de criação de tabelas externas do OSS para dados nos formatos CSV, Parquet ou TEXT, consulte Sintaxe para tabelas externas do OSS.-
Consulte os dados do OSS.
A consulta a uma tabela externa utiliza a mesma sintaxe da consulta a uma tabela interna do AnalyticDB for MySQL. Consulte os dados diretamente, conforme o exemplo a seguir:
select uid, other from oss_import_test_external_table where uid < 100 limit 10;Para grandes objetos de dados CSV ou TEXT, recomendamos fortemente importar os dados para o AnalyticDB for MySQL antes de consultar, garantindo melhor desempenho.
Para objetos de dados Parquet, consultas diretas geralmente apresentam alto desempenho. Decida se deseja importar os dados para o AnalyticDB for MySQL antes de consultar, conforme suas necessidades.
-
Execute a instrução CREATE TABLE para criar uma tabela de destino chamada
adb_oss_import_testno banco de dadosadb_demopara armazenar os dados importados do OSS.CREATE TABLE IF NOT EXISTS adb_oss_import_test ( uid string, other string ) DISTRIBUTED BY HASH(uid); -
Execute uma instrução INSERT para importar dados da tabela externa do OSS para o AnalyticDB for MySQL.
ImportantePor padrão, as instruções
INSERT INTOeINSERT OVERWRITE SELECTimportam dados de forma síncrona. Ao importar uma grande quantidade de dados, como centenas de gigabytes, a conexão entre o cliente e o servidor do AnalyticDB for MySQL precisa ser mantida por um longo período. Durante esse tempo, problemas de rede podem interromper a conexão, causando falha na importação de dados. Portanto, ao importar grandes volumes de dados, recomendamos usar a instruçãoSUBMIT JOB INSERT OVERWRITE SELECTpara importar dados de forma assíncrona.-
Método 1: Execute a instrução
INSERT INTOpara importar dados. Se uma chave primária tiver valores duplicados, os novos dados serão ignorados e os dados existentes não serão atualizados. Esse comportamento equivale ao uso deINSERT IGNORE INTO. Para mais informações, consulte INSERT INTO. Exemplo de instrução:INSERT INTO adb_oss_import_test SELECT * FROM oss_import_test_external_table; -
Método 2: Execute a instrução INSERT OVERWRITE para importar dados. Esta instrução substitui os dados existentes na tabela. Exemplo de instrução:
INSERT OVERWRITE adb_oss_import_test SELECT * FROM oss_import_test_external_table; -
Método 3: Execute a instrução
INSERT OVERWRITEpara importar dados de forma assíncrona. Utilize a instruçãoSUBMIT JOBpara enviar uma tarefa assíncrona. Para acelerar a tarefa de gravação, adicione a dica/*+ direct_batch_load=true*/. Para mais informações, consulte Gravação assíncrona. Exemplo de instrução:SUBMIT JOB INSERT OVERWRITE adb_oss_import_test SELECT * FROM oss_import_test_external_table;O seguinte resultado é retornado:
+---------------------------------------+ | job_id | +---------------------------------------+ | 2020112122202917203100908203303****** |Para mais informações sobre como enviar uma tarefa assíncrona, consulte Enviar uma tarefa de importação assíncrona.
-
-
Execute o seguinte comando para consultar os dados na tabela
adb_oss_import_test.SELECT * FROM adb_oss_import_test;
Sintaxe para tabelas externas do OSS
Tabelas externas do OSS não particionadas
CREATE TABLE [IF NOT EXISTS] table_name
(column_name column_type[, …])
ENGINE='OSS'
TABLE_PROPERTIES='{
"endpoint":"endpoint",
"url":"OSS_LOCATION",
"accessid":"accesskey_id",
"accesskey":"accesskey_secret",
"format":"CSV|ORC|Parquet",
"delimiter":";",
"skip_header_line_count":1,
"charset":"utf-8"
}';
|
Tipo de tabela externa |
Parâmetro |
Obrigatório |
Descrição |
|
Tabelas externas para arquivos nos formatos CSV, Parquet ou OSS ORC |
ENGINE='OSS' |
Sim |
Engine da tabela. Defina este parâmetro como OSS. |
|
endpoint |
O Endpoint do bucket do OSS. O AnalyticDB for MySQL acessa o OSS apenas via VPC. Nota
Faça login no console do OSS. Clique no nome do bucket de destino. Na página Overview do bucket, visualize o Endpoint. |
||
|
url |
Caminho do arquivo ou pasta no OSS.
|
||
|
accessid |
AccessKey ID da conta Alibaba Cloud ou de um usuário RAM com permissões de gerenciamento no OSS. Para mais informações sobre como obter um AccessKey ID, consulte Contas e Permissões. |
||
|
accesskey |
AccessKey secret da conta Alibaba Cloud ou de um usuário RAM com permissões de gerenciamento no OSS. Para mais informações sobre como obter um AccessKey secret, consulte Contas e Permissões. |
||
|
Tabelas externas para arquivos CSV |
delimiter |
Define o delimitador de coluna para o arquivo de dados CSV. |
|
|
Tabelas externas para arquivos Parquet ou OSS ORC |
format |
Formato do arquivo de dados.
Nota
|
|
|
Tabelas externas para arquivos CSV |
null_value |
Não |
Define o valor Importante
Este parâmetro é suportado apenas por clusters com versão de kernel 3.1.4.2 ou posterior. |
|
ossnull |
Regra que mapeia valores para o valor
Nota
Os exemplos acima assumem que |
||
|
skip_header_line_count |
Número de linhas de cabeçalho a serem ignoradas no início do arquivo durante a importação de dados. A primeira linha de um arquivo CSV é o cabeçalho da tabela. Se você definir este parâmetro como 1, a primeira linha será ignorada automaticamente durante a importação. O valor padrão é 0, o que significa que nenhuma linha é ignorada. |
||
|
oss_ignore_quote_and_escape |
Especifica se aspas e caracteres de escape nos valores dos campos devem ser ignorados. O valor padrão é false, o que significa que aspas e caracteres de escape não são ignorados. Importante
Este parâmetro é suportado apenas por clusters com versão de kernel 3.1.4.2 ou posterior. |
||
|
charset |
Conjunto de caracteres da tabela externa do OSS. Valores válidos:
Importante
Este parâmetro é suportado apenas por clusters com versão de kernel 3.1.10.4 ou posterior. |
Os nomes das colunas e sua ordem na instrução CREATE EXTERNAL TABLE devem corresponder aos do arquivo Parquet ou ORC de origem. Os nomes das colunas não diferenciam maiúsculas de minúsculas.
É possível criar uma tabela externa usando um subconjunto de colunas do arquivo de origem. Colunas não especificadas na instrução CREATE EXTERNAL TABLE são ignoradas.
Se a instrução CREATE EXTERNAL TABLE incluir uma coluna que não existe no arquivo Parquet ou ORC, as consultas nessa coluna retornarão NULL.
O AnalyticDB for MySQL permite ler e gravar arquivos Hive TEXT usando tabelas externas do OSS no formato CSV. Abaixo está um exemplo de instrução para criar essa tabela:
CREATE TABLE adb_csv_hive_format_oss (
a tinyint,
b smallint,
c int,
d bigint,
e boolean,
f float,
g double,
h varchar,
i varchar, -- binary
j timestamp,
k DECIMAL(10, 4),
l varchar, -- char(10)
m varchar, -- varchar(100)
n date
) ENGINE = 'OSS' TABLE_PROPERTIES='{
"format": "csv",
"endpoint":"oss-cn-hangzhou-internal.aliyuncs.com",
"accessid":"LTAI****************",
"accesskey":"yourAccessKeySecret",
"url":"oss://testBucketname/adb_data/",
"delimiter": "\\1",
"null_value": "\\\\N",
"oss_ignore_quote_and_escape": "true",
"ossnull": 2
}';
Ao criar uma tabela externa do OSS no formato CSV para ler arquivos Hive TEXT, observe o seguinte:
O delimitador de coluna padrão para arquivos Hive TEXT é \1. Para ler e gravar arquivos Hive TEXT usando uma tabela externa do OSS no formato CSV, faça o escape de
\1como\\1no parâmetrodelimiter.O valor
NULLpadrão para arquivos Hive TEXT é \N. Para ler e gravar arquivos Hive TEXT usando uma tabela externa do OSS no formato CSV, faça o escape de\Ncomo\\\\Nno parâmetronull_value.Outros tipos de dados primitivos no Hive, como
BOOLEAN, têm correspondência direta com os tipos de dados no AnalyticDB for MySQL. No entanto, os tiposBINARY,CHAR(n)eVARCHAR(n)correspondem todos ao tipoVARCHARno AnalyticDB for MySQL.
Tabelas externas do OSS particionadas
Se sua fonte de dados do OSS contiver partições, os dados serão armazenados em uma estrutura de diretórios hierárquica no OSS. Veja um exemplo:
parquet_partition_classic/
├── p1=2020-01-01
│ ├── p2=4
│ │ ├── p3=SHANGHAI
│ │ │ ├── 000000_0
│ │ │ └── 000000_1
│ │ └── p3=SHENZHEN
│ │ └── 000000_0
│ └── p2=6
│ └── p3=SHENZHEN
│ └── 000000_0
├── p1=2020-01-02
│ └── p2=8
│ ├── p3=SHANGHAI
│ │ └── 000000_0
│ └── p3=SHENZHEN
│ └── 000000_0
└── p1=2020-01-03
└── p2=6
├── p2=HANGZHOU
└── p3=SHENZHEN
└── 000000_0
Nos dados acima, p1, p2 e p3 são as partições de nível 1, nível 2 e nível 3, respectivamente. Para esse tipo de fonte de dados, geralmente consultamos os dados por partição. Para isso, especifique as colunas de chave de partição ao criar a tabela externa do OSS. A instrução a seguir é um exemplo de como criar uma tabela externa do OSS particionada para um arquivo Parquet:
CREATE TABLE [IF NOT EXISTS] table_name
(column_name column_type[, …])
ENGINE='OSS'
TABLE_PROPERTIES='{
"endpoint":"endpoint",
"url":"OSS_LOCATION",
"accessid":"accesskey_id",
"accesskey":"accesskey_secret",
"format":"parquet",
"partition_column":"p1, p2, p3"
}';
O parâmetro
partition_columnemTABLE_PROPERTIESespecifica as colunas de chave de partição, como p1, p2 e p3. As colunas de chave de partição devem ser declaradas no parâmetropartition_columnem ordem, da partição de nível 1 à de nível 3.A definição da coluna deve incluir as colunas de chave de partição, como p1, p2 e p3, e seus tipos de dados. As colunas de chave de partição devem ser colocadas no final da definição da coluna.
A ordem das colunas de chave de partição na definição da coluna deve corresponder à ordem no parâmetro
partition_column.As colunas de chave de partição suportam os seguintes tipos de dados:
BOOLEAN,TINYINT,SMALLINT,INT,INTEGER,BIGINT,FLOAT,DOUBLE,DECIMAL,VARCHAR,STRING,DATEeTIMESTAMP.Ao consultar dados, as colunas de chave de partição são exibidas e utilizadas da mesma forma que outras colunas de dados.
Se o formato não for especificado, o formato padrão será CSV.
Para mais informações sobre outros parâmetros, consulte Descrição dos parâmetros.
Referências
Para conhecer outras formas de importar dados, consulte Fontes de dados suportadas.