AnalyticDB for MySQL oferece o recurso lake cache, que armazena em cache arquivos acessados com frequência do OSS em SSDs NVMe de alto desempenho para acelerar a leitura de dados do OSS. Esse recurso é ideal para cenários que exigem alta largura de banda e envolvem leituras repetitivas de dados, como quando vários analistas precisam consultar o mesmo conjunto de dados. Este tópico descreve os benefícios, os casos de uso e a utilização do lake cache.
Pré-requisitos
Crie um cluster do AnalyticDB for MySQL Enterprise Edition, Basic Edition ou Data Lakehouse Edition.
Visão geral
Como funciona
O lake cache opera da seguinte forma:
O cliente do lake cache encaminha solicitações de leitura de dados do OSS para o acelerador do lake cache. Em seguida, o cliente se conecta a um nó mestre do lake cache para solicitar metadados de arquivo.
O nó mestre do lake cache retorna os metadados do arquivo ao cliente do lake cache.
-
Com base nos metadados, o cliente do lake cache envia uma solicitação a um worker do lake cache para recuperar dados do OSS:
Se o arquivo alvo estiver no espaço de cache do worker do lake cache, o sistema retornará o arquivo diretamente ao cliente.
Caso o arquivo alvo não esteja no espaço de cache, o acelerador do lake cache recupera o arquivo do OSS. O acelerador então retorna o arquivo ao cliente e o armazena em cache para solicitações futuras.
Benefícios
-
Latência no nível de milissegundos
O acelerador do lake cache utiliza SSDs NVMe para oferecer latência de leitura no nível de milissegundos.
-
Alto throughput
A largura de banda do acelerador escala linearmente com o tamanho do espaço de cache, oferecendo throughput de pico de até centenas de GB/s.
-
Alta densidade de throughput
O acelerador fornece alto throughput para pequenos conjuntos de dados, atendendo a demandas de leitura em pico para dados quentes.
-
Dimensionamento elástico
Dimensione manualmente o espaço de cache para cima ou para baixo conforme as necessidades do negócio, evitando desperdício de recursos e reduzindo custos. O espaço de cache pode ser dimensionado de 10 GB a 200.000 GB.
-
Armazenamento e computação desacoplados
Diferentemente do cache em nós de computação, o acelerador do lake cache é um componente independente e seu tamanho pode ser ajustado online.
-
Consistência de dados
Quando um arquivo no OSS é atualizado, o acelerador do lake cache detecta automaticamente a alteração e armazena a nova versão em cache. Isso garante que o mecanismo de computação sempre leia os dados mais recentes.
Métricas de desempenho e política de evicção de cache
|
Parâmetro |
Descrição |
|
Largura de banda do acelerador |
A largura de banda é calculada pela fórmula: Por exemplo, se o acelerador do lake cache tiver um espaço de cache de 10 TB, a largura de banda de leitura será (5 × 10) GB/s = 50 GB/s. |
|
Espaço de cache do acelerador do lake cache |
O valor pode variar de 10 GB a 200.000 GB. O acelerador do lake cache fornece throughput para dados em cache com base no tamanho do espaço de cache configurado. Cada terabyte (TB) de espaço de cache fornece 5 GB/s de largura de banda. O throughput fornecido pelo acelerador é adicional e não limitado pelo OSS padrão.OSS Para solicitar uma capacidade maior, envie um ticket. |
|
Política de evicção de cache |
Quando o cache está cheio, o sistema usa a política Least Recently Used (LRU) para remover dados. Essa política remove primeiro os dados acessados menos recentemente para maximizar a eficiência do cache. |
Desempenho
O AnalyticDB for MySQL foi testado com base no benchmark TPC-H para comparar dois métodos: habilitar o lake cache e acessar diretamente o espaço de armazenamento do OSS. Neste teste, a ativação do recurso lake cache melhorou a eficiência de acesso aos dados em 2,7 vezes. Para resultados detalhados do teste, consulte a tabela a seguir:
|
Tipo |
Espaço de cache |
Tamanho do conjunto de dados |
Recursos do Spark |
Duração da consulta |
|
lake cache habilitado |
12 TB |
Conjunto de dados TPC-H de 10 TB |
Médio (2 núcleos, 8 GB) |
7219s |
|
Acesso direto ao OSS |
N/A |
Conjunto de dados TPC-H de 10 TB |
Médio (2 núcleos, 8 GB) |
19578s |
Faturamento
O espaço do lake cache é cobrado com base no pagamento conforme o uso. Para mais informações, consulte Preços para Enterprise Edition e Basic Edition e Preços para Data Lakehouse Edition.
Observações de uso
-
O lake cache está disponível apenas nas seguintes regiões: China (Hangzhou), China (Shanghai), China (Beijing), China (Zhangjiakou), China (Shenzhen), Singapura, EUA (Silicon Valley), EUA (Virginia) e Indonésia (Jakarta).
ImportanteCaso deseje usar o recurso lake cache em outras regiões, envie um ticket.
Se ocorrer uma falha de hardware no cache, as consultas de dados continuarão sendo executadas sem interrupções ou erros, embora o desempenho possa diminuir. Os dados em cache são recarregados do OSS e a velocidade da consulta é restaurada após a conclusão do processo.
Quando o espaço de cache configurado atinge a capacidade máxima, o acelerador substitui arquivos acessados com menos frequência por aqueles acessados com mais frequência, seguindo a política de evicção de cache. Para evitar que arquivos sejam removidos, aumente o espaço de cache.
Ative o lake cache
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 você deseja gerenciar e clique no ID do cluster.
Acesse a página Cluster Information. Na seção Configuration Information, clique em Configure ao lado de Lake Cache.
Na caixa de diálogo Lake Cache, ative a chave Lake Cache e configure as Disk Cache Settings.
Clique em OK.
Após habilitar o Lake Cache, siga os mesmos passos para visualizar o tamanho do espaço de cache configurado.
Usar o lake cache
Depois de habilitar o lake cache, ao ler dados do OSS, acelere as leituras de dados do OSS configurando o parâmetro spark.adb.lakecache.enabled na configuração do seu job Spark. Veja um exemplo abaixo:
Spark SQL
-- This is an example of using lake cache. Modify the code to run your Spark program.
SET spark.adb.lakecache.enabled=true;
-- Add your SQL statements here.
SHOW databases;
Spark JAR
{
"comments": [
"-- This is an example of using lake cache. Modify the code to run your Spark program."
],
"args": ["oss://testBucketName/data/readme.txt"],
"name": "spark-oss-test",
"file": "oss://testBucketName/data/example.py",
"conf": {
"spark.adb.lakecache.enabled": "true"
}
}
Para usar o acelerador do lake cache com o mecanismo XIHE, envie um ticket.
Monitorar o lake cache
Após habilitar o lake cache, utilize o console do CloudMonitor para verificar se suas aplicações Spark estão usando o cache e visualizar métricas como volume de leitura de dados. Para isso, execute os seguintes passos:
Faça login no console do Cloud Monitor.
No painel de navegação à esquerda, escolha .
Passe o mouse sobre o cartão AnalyticDB for MySQL e clique em AnalyticDB for MySQL 3.0 - Data Lakehouse Edition.
Localize o cluster desejado e clique em Monitoring Charts na coluna Actions.
-
Clique na aba LakeCache Metrics para visualizar os detalhes.
A tabela a seguir descreve as métricas de monitoramento.
Métrica
Descrição
LakeCache Cache Hit Ratio (%)
Percentual de solicitações de leitura atendidas pelo cache. Fórmula: (Acertos no Cache / Total de Solicitações de Leitura) × 100%.
LakeCache Cache Usage (B)
Quantidade de espaço de cache utilizado, em bytes.
Total Data Read from LakeCache (B)
Quantidade total de dados lidos do espaço de cache, em bytes.