Os administradores de instâncias do Looker hospedadas pelo cliente podem considerar a migração para um ambiente hospedado pelo Looker, principalmente para trocar a sobrecarga da administração da infraestrutura por mais conveniência, maior disponibilidade de recursos e confiabilidade gerenciada. O uso de uma instância hospedada pelo Looker reduz muito o esforço necessário para instalar, configurar e manter o aplicativo Looker, porque todas as funções de TI necessárias relacionadas ao aplicativo Looker são processadas para você.
A migração de uma instância hospedada pelo cliente para um ambiente hospedado pelo Looker envolve estas etapas principais:
- Ingestão e configuração: você abre um tíquete com a equipe do Looker e preenche o questionário de migração do Looker On-Prem. A equipe do Looker cria uma nova instância hospedada com base nas suas respostas ao questionário.
- Criptografia: os SREs do Looker geram um par de chaves GnuPG (GPG) e compartilham a chave pública com você.
- Exportação: você interrompe a instância do Looker e exporta os dados dela (banco de dados, sistema de arquivos e chave gerenciada pelo cliente (CMK)).
- Trânsito e importação de dados: a equipe do Looker importa o backup para a instância hospedada pelo Looker e o verifica.
Esta página descreve como realizar as tarefas necessárias para a Etapa 3: exportação:
- Avaliar a performance e o tamanho do sistema de arquivos e do banco de dados da instância
- Fazer backup, criptografar e gerar uma soma de verificação dos dados que serão enviados do sistema de arquivos do Looker
- Fazer backup, criptografar e gerar uma soma de verificação dos dados que serão enviados do esquema do banco de dados do Looker
- Criar, criptografar e gerar uma soma de verificação do arquivo de chave CMK
- Validar os artefatos de backup
- Entregar os arquivos de backup para migração
Antes de começar
Antes de usar os scripts nesta página para fazer backup dos dados da instância, verifique se a instância, o banco de dados e a configuração de criptografia do Looker atendem aos requisitos de migração.
Configurações necessárias
As seguintes versões do Looker e do banco de dados são necessárias para executar os scripts descritos nesta página:
- A instância do Looker precisa estar executando uma versão de lançamento compatível do Looker.
- A instância precisa usar um banco de dados compatível com o MySQL versão 8.0.0 ou mais recente para que o arquivo de esquema de banco de dados exportado possa ser consumido pelo Looker.
Se você estiver usando o AWS KMS, migre para a criptografia AES-256 GCM do Looker seguindo as etapas descritas na página de documentação Como mudar as chaves de criptografia do Looker.
Para garantir o armazenamento adequado de dados e a exibição de caracteres, a ordenação do banco de dados precisa ser definida como utf8mb4 (recomendado) ou utf8. O uso de outras ordenações pode resultar em corrupção de dados ou erros ao salvar caracteres especiais.
Avaliar a instância para migração
Para determinar se a instância do Looker hospedada pelo cliente pode ser migrada para uma instância do Looker (original) hospedada pelo Looker, avalie o tamanho e a performance do banco de dados e do sistema de arquivos da instância. Essa avaliação também verifica se o ambiente de origem pode processar a extração de dados que ocorre durante o processo de geração de backup. Essas informações ajudam a equipe do Looker a alocar recursos suficientes para a instância de destino hospedada pelo Looker.
Para realizar a avaliação, clone o repositório do GitHub que contém o script do Looker para avaliar o uso de computação e a performance do sistema de arquivos de uma instância do Looker. Esse script depende do Go Looker SDK e está disponível no repositório Looker O2C Migration Evaluation no GitHub.
As seções a seguir descrevem as etapas necessárias para executar o script que avalia sua instância, que incluem as seguintes tarefas:
- Clonar o repositório que contém o script.
- Gerar credenciais de API.
- Executar o comando para verificar o uso de computação.
- Executar o comando para verificar a performance do sistema de arquivos.
Instalar ferramentas de avaliação
Instale as seguintes ferramentas, linguagens e SDKs na máquina em que você fará backup dos dados da instância do Looker:
Clonar o repositório de avaliação de migração do Looker O2C
Para clonar o repositório que contém o script de avaliação, execute o seguinte comando no diretório inicial do usuário que vai executar a análise e o backup:
git clone https://github.com/looker-open-source/looker-o2c-migration-tool.git
Gerar credenciais de API
O script de avaliação usa o Looker SDK para recuperar dados, atuando como um cliente de API que envia solicitações pela rede ao servidor do Looker. O usuário administrador que executa o script precisa ter um ID e uma chave secreta do cliente da API Looker. Para gerar credenciais de API para sua conta de administrador do Looker, siga estas etapas:
- Navegue até a página Usuários no painel Admin.
- Selecione Editar para sua conta.
- Na página de detalhes da conta, localize a seção Chaves da API3 e selecione Editar chaves.
- Selecione Nova chave de API.
- O Looker vai mostrar um ID do cliente e uma chave secreta do cliente. Copie esses valores e salve-os em um local seguro.
Gerar informações de uso de computação
Para usar o script de avaliação de migração e retornar informações sobre o uso de computação da instância, execute o seguinte comando em uma máquina que tenha uma conexão de rede direta com o endpoint de API do aplicativo Looker:
cd looker-o2c-migration-tool
go run main.go --client-id API_CLIENT_ID --client-secret API_CLIENT_SECRET --looker-instance-address LOOKER_INSTANCE_ADDRESS --output-csv-path OUTPUT_CSV_PATH --ssl=SSL
Substitua:
API_CLIENT_ID: seu ID do cliente da etapa anterior.API_CLIENT_SECRET: sua chave secreta do cliente da etapa anterior.LOOKER_INSTANCE_ADDRESS: o endereço da instância do Looker, incluindo o protocolo.OUTPUT_CSV_PATH: o caminho para a saída CSV, como/content/compute_usage_info.csv.SSL: se a conexão entre a máquina e a instância do Looker deve usar um certificado SSL. O valor étruepor padrão.
Esse comando gera um arquivo CSV com os detalhes de uso da instância do Looker.
Gerar informações de performance do sistema de arquivos
Esse script mostra o tamanho e a contagem de arquivos de diretórios individuais relacionados ao modelo, além de um teste de velocidade de gravação em disco. Ele pressupõe que o Looker esteja instalado no diretório inicial de um usuário com o nome de usuário looker, conforme descrito na página de documentação Instalar o aplicativo Looker.
Para usar o script de avaliação de migração e retornar informações sobre a performance do sistema de arquivos da instância, execute o seguinte comando na máquina em que a instância do Looker está hospedada:
cd looker-o2c-migration-tool
go run main.go --file-system-evaluation --output-csv-path OUTPUT_CSV_PATH
Substitua:
OUTPUT_CSV_PATH: o caminho para a saída CSV, como /content/fs_perf_info.csv
Esse comando gera um arquivo CSV com a performance do sistema de arquivos da instância do Looker.
Preparar a instância para backup
Prepare-se para fazer backup dos dados da instância instalando os pacotes e dependências necessários para executar os scripts descritos nesta página. Também é possível definir algumas variáveis de ambiente para simplificar a gravação de comandos.
Instalar e verificar dependências
Ao instalar as dependências necessárias para fazer backup dos dados da instância do Looker, use o gerenciador de pacotes padrão da sua distribuição Linux. As versões a seguir correspondem aos pacotes fornecidos no Debian 12 (Bookworm) e representam a versão mínima de cada pacote necessário.
Instale os seguintes pacotes na máquina em que você fará backup dos dados da instância do Looker:
bash 5.2.15gpg2.2.40(GnuPG) – o processo de geração de backup usagpgpara criptografar os backups do banco de dados e do sistema de arquivos antes de serem compartilhados com a equipe do Looker.libgcrypt 1.10.2Gpg-agent 2.2.40(GnuPG)GNU tar 1.34gzip 1.12md5sum 9.1(GNU coreutils)GNU grep 3.11(com suporte para PCRE2 10.42 2022-12-11 ou mais recente)GNU sed 4.9mariadb-client-core(precisa se conectar ao MySQL 8.X)
Como exemplo, execute os comandos a seguir para instalar os pacotes necessários em um sistema Linux baseado no Debian:
sudo apt-get update
sudo apt-get install -y \
bash \
gnupg \
libgcrypt20 \
gnupg-agent \
tar \
gzip \
coreutils \
grep \
sed \
mariadb-client-core
Definir variáveis
Os comandos a seguir definem algumas variáveis que serão usadas durante todo o processo de geração de backup. Configure-as em qualquer terminal em que você planeja executar outros comandos.
Variável de ambiente: definir o caminho do diretório de backup
O comando a seguir vai definir o caminho para o diretório de backup em que os arquivos serão criados. Execute esses comandos em qualquer terminal em que você planeja realizar as tarefas de geração de backup específicas do diretório:
BACKUP_DIRECTORY="DIRECTORY_PATH"
BACKUP_DIRECTORY="${BACKUP_DIRECTORY%/}"
Substitua:
DIRECTORY_PATH: o caminho em que os arquivos de backup serão criados. Verifique se esse diretório é grande o suficiente para conter o backup. Não inclua o/inicial do caminho.
Variável de ambiente: definir o caminho de origem para backup do sistema de arquivos
A definição de variável para o caminho de origem do backup do sistema de arquivos pressupõe que looker seja o nome de usuário do usuário que instalou o aplicativo Looker e que a instalação tenha ocorrido no diretório inicial do usuário, conforme descrito na página de documentação Instalar o aplicativo Looker. Modifique a variável se você instalou o Looker em um diretório diferente. Defina essa variável no terminal em que você vai executar o backup do sistema de arquivos do Looker:
LOOKER_USER="looker"
ROOT_LOOKER_FS_DIRECTORY="$(getent passwd "$LOOKER_USER" | cut -d: -f 6)"
Variável de ambiente: definir uma nova instância do Looker
Defina variáveis para representar o nome e o ID exclusivo da instância em que você vai importar. A equipe do Looker fornece os valores dessas variáveis.
export luid='LOOKER_HOSTED_INSTANCE_ID'
export customer='LOOKER_HOSTED_INSTANCE_NAME'
Substitua:
LOOKER_HOSTED_INSTANCE_ID: o identificador exclusivo da instância do Looker para a qual você vai migrarLOOKER_HOSTED_INSTANCE_NAME: o nome da nova instância do Looker para a qual você vai migrar
Variável de ambiente: chave de criptografia
O comando a seguir vai instalar uma chave GPG pública na sua instância. Configure-o em qualquer terminal em que você vai executar os comandos de backup da instância (o Looker vai fornecer o valor dessa variável):
base64_encryption_key="BASE64_ENCRYPTION_KEY"
Substitua:
BASE64_ENCRYPTION_KEY: a chave de criptografia que o script de backup usa para criptografar seus backups. A equipe do Looker fornece o valor dessa variável.
Gerar uma chave de criptografia pública
O comando a seguir vai instalar uma chave pgp pública na sua instância. Os scripts de backup usam essa chave para criptografar o backup. Configure-o em qualquer terminal em que você vai executar os comandos para fazer backup da instância.
echo -n "${base64_encryption_key}" | base64 -d | gpg --import
Fazer backup dos dados da instância
Execute os comandos a seguir para empacotar com segurança os componentes críticos do sistema de arquivos e do esquema de banco de dados da instância para que eles possam ser transferidos e restaurados para uma nova instância do Looker (original) hospedada pelo Looker. O script vai realizar o backup usando md5sum para verificar e validar a integridade do backup. Por fim, ele criptografa o backup usando o GnuPG antes de exportar os resultados no formato de arquivo MD5.
Fazer backup dos dados do sistema de arquivos da instância
Execute esses comandos no diretório em que você quer exportar os dados de backup e no mesmo terminal em que definiu as variáveis de ambiente. Selecione a guia do tipo de instância hospedada pelo Looker para a qual você planeja migrar.
Looker (original)
Execute esse comando para garantir que todos os hooks personalizados do lado do servidor Git usados para validação de dados ou automação de fluxo de trabalho sejam incluídos no backup:
cd "${BACKUP_DIRECTORY}"
function findHookPath() {
rootPath=$1
find \
${rootPath}/models{-user-*,}/*/.git/config \
-maxdepth 0 \
-type f \
-xtype f \
| xargs -I {} grep hooksPath {} \
| sort \
| uniq \
| sed -r -e 's/^.+hooksPath = //g' \
| xargs -I {} dirname {} \
| sort \
| uniq \
| sed -r -e "s#\.\.\/\.\.\/#${rootPath}/#g"
}
hooksPath=$(findHookPath "${ROOT_LOOKER_FS_DIRECTORY}" | sort | uniq | head -1)
Execute esse comando para listar todos os diretórios necessários e fazer backup deles:
time find "${ROOT_LOOKER_FS_DIRECTORY}" \
-maxdepth 1 \
-type d \
\( \
-name marketplace \
-o -name bare_models \
-o -name deploy_keys \
-o -name models \
-o -name remote_dependencies \
-o -name models-self-service \
-o -name "models-user-*" \
-o -wholename "${hooksPath}" \
\) | tar \
--gzip \
--create \
--file="${customer}_looker_fs_backup.tar.gz" \
--files-from=-
Execute esse comando para fazer uma "impressão digital" do backup antes da criptografia:
time md5sum "${customer}_looker_fs_backup.tar.gz" > "${customer}_fs_backup.md5"
Execute esse comando para criptografar o backup:
time gpg --encrypt --yes \
--output "${customer}_looker_fs_backup.tar.gz.enc" \
--recipient "looker-devops+migration-${luid}@google.com" \
"${customer}_looker_fs_backup.tar.gz"
Execute esse comando para fazer outra "impressão digital" após a criptografia:
time md5sum "${customer}_looker_fs_backup.tar.gz.enc" >> "${customer}_fs_backup.md5"
A soma de verificação ajuda o Looker a verificar a integridade do backup de dados.
Looker (Google Cloud Core)
Execute esse comando para garantir que todos os hooks personalizados do lado do servidor Git usados para validação de dados ou automação de fluxo de trabalho sejam incluídos no backup:
cd "${BACKUP_DIRECTORY}"
function findHookPath() {
rootPath=$1
find \
${rootPath}/models{-user-*,}/*/.git/config \
-maxdepth 0 \
-type f \
-xtype f \
| xargs -I {} grep hooksPath {} \
| sort \
| uniq \
| sed -r -e 's/^.+hooksPath = //g' \
| xargs -I {} dirname {} \
| sort \
| uniq \
| sed -r -e "s#\.\.\/\.\.\/#${rootPath}/#g"
}
hooksPath=$(findHookPath "${ROOT_LOOKER_FS_DIRECTORY}" | sort | uniq | head -1)
Execute esse comando para listar todos os diretórios necessários e fazer backup deles:
time find "${ROOT_LOOKER_FS_DIRECTORY}" \
-maxdepth 1 \
-type d \
\( \
-name marketplace \
-o -name bare_models \
-o -name deploy_keys \
-o -name models \
-o -name remote_dependencies \
-o -name models-self-service \
-o -name "models-user-looker" \
-o -wholename "${hooksPath}" \
\) | tar \
--gzip \
--create \
--file="${customer}_looker_fs_backup.tar.gz" \
--files-from=-
Execute esse comando para fazer uma "impressão digital" do backup antes da criptografia:
time md5sum "${customer}_looker_fs_backup.tar.gz" > "${customer}_fs_backup.md5"
Execute esse comando para criptografar o backup:
time gpg --encrypt --yes \
--output "${customer}_looker_fs_backup.tar.gz.enc" \
--recipient "looker-devops+migration-${luid}@google.com" \
"${customer}_looker_fs_backup.tar.gz"
Execute esse comando para fazer outra "impressão digital" após a criptografia:
time md5sum "${customer}_looker_fs_backup.tar.gz.enc" >> "${customer}_fs_backup.md5"
A soma de verificação ajuda o Looker a verificar a integridade do backup de dados.
Esse script produz os seguintes arquivos para a parte do sistema de arquivos da migração:
${customer}_looker_fs_backup.tar.gz.enc: o backup criptografado e compactado do sistema de arquivos.${customer}_fs_backup.md5: o arquivo que contém as somas de verificação para verificação.
Fazer backup do esquema do banco de dados da instância
Esses comandos preparam seu ambiente para fazer backup do esquema do banco de dados da instância do Looker criando um arquivo de configuração temporário que permite que as ferramentas de migração se conectem ao banco de dados interno da instância do Looker. Em vez de transmitir dados sensíveis, como nomes de usuário e nomes de host, diretamente para os comandos, esse script os grava no arquivo de configuração, que ferramentas como mysqldump e mysql podem ler.
Execute o comando a seguir para criar o arquivo de configuração temporário e definir várias configurações:
export database_name="DATABASE_SCHEMA_NAME"
temporary_cnf_file="$(mktemp --tmpdir=. --suffix .cnf)"
echo "[client]
host=DATABASE_HOST
port=DATABASE_PORT
user=DATABASE_USER
password=PASSWORD
[mariadb-dump]
no-sandbox
[mysql]
no-auto-rehash
[mysqldump]
no-tablespaces
loose_set-gtid-purged=OFF
single-transaction
quick
max_allowed_packet=1G
ignore-table=${database_name}.LookerQ_LookerBQ_ACTIVEMQ_ACKS
ignore-table=${database_name}.LookerQ_LookerBQ_ACTIVEMQ_LOCK
ignore-table=${database_name}.LookerQ_LookerBQ_ACTIVEMQ_MSGS
[Server-specific settings - mostly for mysqld/mariadbd processes]
max_allowed_packet = 1024M
" > ${temporary_cnf_file}
Substitua:
DATABASE_HOST: o DNS ou IP do banco de dados do Looker.DATABASE_PORT: a porta do banco de dados.DATABASE_USER: o nome de usuário do banco de dados para executar a exportação.PASSWORD: o valor de texto simples da senha do usuário que vai executar a exportação. O Looker não vai verificar essa senha. No entanto, se você preferir omitir o requisito de senha de texto simples, deixe essa variável em branco, e o sistema vai forçar a solicitação da senha ao executar comandos de backup.DATABASE_SCHEMA_NAME: o nome do banco de dados ou esquema.
Se o banco de dados exigir um certificado SSL para conexão, adicione os seguintes caminhos ao arquivo de configuração temporário:
Defina o caminho para o arquivo da autoridade de certificação (CA):
ssl-ca=/etc/mysql/certs/ca.pem
Defina o caminho para o certificado SSL do cliente:
ssl-cert=/etc/mysql/certs/client-cert.pem
Defina o caminho para a chave privada SSL do cliente:
ssl-key=/etc/mysql/certs/client-key.pem
Para bancos de dados MySQL, exija um SSL e verifique o certificado do servidor:
loose-ssl-mode=VERIFY_CA
Para bancos de dados MariaDB, exija um SSL e verifique o certificado do servidor:
loose-ssl-verify-server-cert=ON
Execute os comandos a seguir para realizar, criptografar e verificar o backup do esquema do banco de dados.
Navegue até o diretório em que você quer armazenar o backup:
cd "${BACKUP_DIRECTORY}"
Execute esse comando para fazer backup do banco de dados:
time mysqldump \
--defaults-file="${temporary_cnf_file}" \
"${database_name}" \
| gzip > "${customer}_looker_db_backup.sql.gz"
Execute esse comando para fazer uma "impressão digital" do backup antes da criptografia:
time md5sum "${customer}_looker_db_backup.sql.gz" >> "${customer}_db_backup.md5"
Execute esse comando para criptografar o backup:
time gpg --encrypt --yes \
--output "${customer}_looker_db_backup.sql.gz.enc" \
--recipient "looker-devops+migration-${luid}@google.com" \
"${customer}_looker_db_backup.sql.gz"
Execute esse comando para fazer outra "impressão digital" após a criptografia:
time md5sum "${customer}_looker_db_backup.sql.gz.enc" >> "${customer}_db_backup.md5"
Esse script produz os seguintes arquivos para a parte do esquema do banco de dados da migração:
${customer}_looker_db_backup.sql.gz.enc: o backup criptografado e compactado do esquema do banco de dados.${customer}_db_backup.md5: o arquivo que contém as somas de verificação para verificação.
Criptografar a chave de criptografia gerenciada pelo cliente (CMK)
Os comandos a seguir vão validar, formatar e criptografar a CMK. Sem essa criptografia, um banco de dados migrado não pode ser descriptografado no novo ambiente do Looker.
Cuidado:o próximo comando CMK precisa ser executado apenas uma vez na máquina que hospeda seu banco de dados interno ou na máquina que hospeda a instância do Looker, mas não em ambas.
Primeiro, defina uma variável com sua CMK atual, que precisa estar no formato base64:
CMK="CUSTOMER_CMK_KEY"
Substitua:
CUSTOMER_CMK_KEY: o valor da sua CMK
Em seguida, execute os comandos a seguir para gerar um arquivo de chave CMK, gerar a soma de verificação da CMK descriptografada, criptografar o arquivo CMK e gerar a soma de verificação da CMK criptografada:
echo -n "${CMK}" > "${customer}_looker_cmk_key"
time md5sum "${customer}_looker_cmk_key" >> "${customer}_cmk_key.md5"
time gpg --encrypt --yes \
--output "${customer}_looker_cmk_key.enc" \
--recipient "looker-devops+migration-${luid}@google.com" \
"${customer}_looker_cmk_key"
time md5sum "${customer}_looker_cmk_key.enc" >> "${customer}_cmk_key.md5"
Esse script produz os seguintes arquivos para a parte CMK da migração:
${customer}_looker_cmk_key.enc: o arquivo CMK criptografado${BACKUP_DIRECTORY}/${customer}_cmk_key.md5: o arquivo que contém as somas de verificação para verificação
Preparar os arquivos de migração
Os scripts que você executou até agora produziram os seguintes arquivos:
compute_usage_info.csv: o arquivo CSV que contém informações sobre o uso de computação da instânciafs_perf_info.csv: o arquivo CSV que contém informações sobre a performance do sistema de arquivos da instância${customer}_looker_fs_backup.tar.gz.enc: o backup criptografado e compactado do sistema de arquivos${customer}_fs_backup.md5: o arquivo que contém as somas de verificação para verificação${customer}_looker_db_backup.sql.gz.enc: o backup criptografado e compactado do esquema do banco de dados${customer}_db_backup.md5: o arquivo que contém as somas de verificação para verificação${customer}_cmk_key.md5: o arquivo que contém as somas de verificação para verificação${customer}_looker_cmk_key.enc: o arquivo CMK criptografado
Para combinar os arquivos MD5 em um único arquivo chamado ${customer}_backup.md5, execute o seguinte comando no diretório de backup:
cat \
"${customer}_db_backup.md5" \
"${customer}_fs_backup.md5" \
"${customer}_cmk_key.md5" \
| sort | uniq \
> "${customer}_backup.md5"
Validar os artefatos de backup
Para garantir que os arquivos de backup estejam completos, seguros e prontos para migração, use a ferramenta Looker On-Prem Data Verifier. Essa ferramenta realiza uma validação abrangente, incluindo a verificação de somas de verificação MD5, chaves de criptografia GPG, estrutura do banco de dados e validade da CMK.
Instalar a ferramenta de validação
Para executar a ferramenta de validação, é necessário ter o Go e o GnuPG instalados na máquina.
Para clonar o repositório e criar a ferramenta, execute os seguintes comandos:
git clone https://github.com/looker-open-source/customer-scripts.git
cd customer-scripts/onprem-data-verifier
go build -o onprem-verifier main.go
Executar a ferramenta de validação
A ferramenta opera no diretório que contém os arquivos de backup. Verifique se todos os arquivos necessários (quatro artefatos criptografados e três descriptografados) estão no ${BACKUP_DIRECTORY} antes de executar a ferramenta.
Execute o comando a seguir para validar os artefatos:
./onprem-verifier \
--backupDir "${BACKUP_DIRECTORY}" \
--customerName "${customer}" \
--luid "${luid}"
Após a conclusão, a ferramenta gera um arquivo metadata.json. Inclua esse arquivo ao entregar os artefatos de backup à equipe do Looker.
Entregar os arquivos
No final do processo de backup e criptografia, você terá os seguintes arquivos:
${customer}_looker_db_backup.sql.gz.enc${customer}_looker_fs_backup.tar.gz.enc${customer}_looker_cmk_key.enc${customer}_backup.md5metadata.jsoncompute_usage_info.csvfs_perf_info.csv
Entregue esses arquivos à equipe do Looker para importação em uma instância hospedada pelo Looker.