Para consultar e analisar dados de uma instância do RDS for MySQL que utiliza discos cloud, use primeiro o recurso Advanced Download e baixe os dados para o Alibaba Cloud Object Storage Service (OSS). Em seguida, importe os dados do OSS para um data warehouse nativo da cloud, o AnalyticDB for MySQL, para consulta e análise.
Pré-requisitos
A instância do RDS for MySQL deve ser uma instância de disco cloud e oferecer suporte ao recurso Advanced Download. Para obter mais informações sobre as instâncias compatíveis, consulte Prerequisites.
Você já deve ter criado um cluster de destino do data warehouse nativo da cloud AnalyticDB for MySQL. Para obter mais informações, consulte Create a Data Warehouse Edition cluster ou Create a Data Lakehouse Edition cluster.
-
Se o cluster do AnalyticDB for MySQL estiver no modo elástico, ative a opção ENI na seção Network Information da página Cluster Information.
ImportanteAo ativar ou desativar a ENI, as conexões com o banco de dados podem ser interrompidas por aproximadamente 2 minutos. Durante esse período, você não pode executar operações de leitura ou gravação. Tenha cuidado ao ativar ou desativar a ENI.
Observações
AnalyticDB for MySQL aceita a importação de arquivos de dados apenas nos formatos CSV ou Parquet. Ao usar o recurso de download de backup do RDS for MySQL, selecione CSV ou Parquet como formato de download.
Preparativos
Siga estas etapas para usar o recurso de download de backup e mover seus dados do AnalyticDB for MySQL para uma pasta no Object Storage Service (OSS).
Primeiro, ative o OSS. Para obter mais informações, consulte Activate OSS.
-
Em seguida, crie um bucket do OSS no console do OSS. Para obter mais informações, consulte Create a bucket in the console.
NotaO bucket do OSS e o cluster do AnalyticDB for MySQL devem estar na mesma região.
Depois, crie uma pasta no console do OSS. Para obter mais informações, consulte Create a folder.
-
Use o recurso Download Backup e baixe os dados de backup de uma instância de disco cloud para o OSS.
NotaSe você selecionar um destino de download diferente, será necessário enviar os dados de backup manualmente para o OSS. Para obter mais informações, consulte Upload data.
Neste exemplo, o banco de dados RDS for MySQL source chama-se
mydbe contém uma tabela chamadamytable. Os dados de amostra na tabela são os seguintes:INSERT INTO mytable (id, name) VALUES ("12", "hello_world_1"), ("27", "hello_world_2"), ("28", "hello_world_3"), ("33", "hello_world_4"), ("37", "hello_world_5"), ("40", "hello_world_6");Use o recurso de download de backup e salve os dados da tabela
mytableno caminho do OSS/bucket/_export/mydb/mytable/data/0-1csv.
Importe dados do OSS para o AnalyticDB for MySQL
Neste exemplo, os dados de /bucket/_export/mydb/mytable/data/0-1csv são importados para o banco de dados adb_demo no AnalyticDB for MySQL.
Conecte-se ao cluster do AnalyticDB for MySQL. Para obter mais informações, consulte 连接集群.
-
Crie um banco de dados. Para obter mais informações, consulte Create a database.
Neste exemplo, um banco de dados chamado
adb_demoé criado no cluster do AnalyticDB for MySQL. -
Agora, crie uma tabela de mapeamento externo.
NotaAo criar uma tabela de mapeamento externo, você pode usar o mesmo nome da tabela source ou especificar um nome diferente.
O AnalyticDB for MySQL oferece suporte apenas a análises no nível da tabela e não aceita análises de banco de dados completo. Portanto, crie uma tabela de mapeamento no banco de dados do AnalyticDB for MySQL antes de executar a análise. Use a instrução
CREATE TABLEpara criar uma tabela de mapeamento externo do OSS no formato CSV ou Parquet no banco de dados de destinoadb_demo. Este exemplo mostra como criar uma tabela de mapeamento externo do OSS no formato CSV para arquivos de dados que não possuem partições. Para obter mais informações sobre a sintaxe, consulte Creating an OSS external table from data files without partitions.CREATE TABLE IF NOT EXISTS mytable ( id string, name string ) ENGINE='OSS' TABLE_PROPERTIES='{ "endpoint":"oss-cn-hangzhou-internal.aliyuncs.com", "url":"oss://bucket/_export/mydb/mytable/data/0-1csv", "accessid":"LTAI****************", "accesskey":"yourAccessKeySecret", "delimiter":",", "format":"csv" }';Parâmetro
Descrição
ENGINE='OSS'
O mecanismo da tabela. Defina este parâmetro como OSS.
TABLE_PROPERTIES
Especifica como o AnalyticDB for MySQL acessa os dados no OSS.
endpoint
O Endpoint do bucket do OSS. AnalyticDB for MySQL pode acessar o OSS apenas por meio de uma VPC.
NotaFaça login no console do OSS e clique em nome do bucket de destino. Na página Overview do bucket, visualize o Endpoint.
url
O caminho absoluto para o arquivo de dados source ou pasta no OSS. Recomendamos terminar os caminhos de pasta com uma barra (/).
Exemplos:
-
Arquivo:
oss://<bucket-name>/adb/oss_import_test_data.csv. -
Pasta:
oss://<bucket-name>/adb_data/.Observação
Se você especificar um caminho de pasta, a tabela externa incluirá todos os dados dentro dessa pasta após a criação.
accessid
O AccessKey ID da conta da Alibaba Cloud ou de um usuário do RAM que tem permissões de gerenciamento no OSS.
Para obter seu AccessKey ID e AccessKey secret, consulte Accounts and Permissions.
accesskey
Seu AccessKey secret para acessar arquivos ou pastas no OSS.
delimiter
Define o delimitador de coluna para o arquivo de dados CSV.
format
O formato do arquivo de dados.
-
Para criar uma tabela externa para um arquivo Parquet, defina este parâmetro como
parquet. -
Para criar uma tabela externa para um arquivo ORC, defina este parâmetro como
orc.
NotaSe você não especificar um formato, o padrão será CSV.
NotaSe a tabela baixada estiver dividida em vários arquivos CSV, como
0-1csve0-2csv, defina o parâmetro url para o diretório pai dos arquivos de dados:"url":"oss://bucket/_export/mydb/mytable/data/". O AnalyticDB for MySQL mescla todos os arquivos nesse caminho na tabelamytable.Neste ponto, a tabela
mytableé criada no banco de dados do AnalyticDB for MySQL. O conteúdo da tabela é idêntico ao conteúdo da tabelamytablesource. Agora você pode consultar a tabela. -
-
Agora, execute a seguinte instrução para consultar os dados importados.
-- mytable is the table name in the database SELECT * FROM mytable;A consulta retorna uma tabela cujo conteúdo é idêntico ao conteúdo da tabela mytable source.
A tabela possui duas colunas, id e name, com seis registros. Os valores de name variam de
hello_world_1ahello_world_6.
Próximos passos
Após importar os dados do RDS for MySQL para o AnalyticDB for MySQL, use os recursos de análise do AnalyticDB for MySQL para executar análises de negócios na tabela importada. Para fazer junções de várias tabelas, repita as etapas anteriores para importar outras tabelas para o banco de dados adb_demo.