AnalyticDB for MySQL oferece o recurso lake cache, que armazena em cache arquivos acessados frequentemente 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, casos de uso e utilização do lake cache.
Pré-requisitos
Um cluster do AnalyticDB for MySQL Enterprise Edition, Basic Edition ou Data Lakehouse Edition deve estar criado.
Visão geral
Como funciona
O lake cache funciona da seguinte maneira:
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 de destino estiver no espaço de cache do worker do lake cache, o arquivo será retornado diretamente ao cliente.
Caso o arquivo de destino 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é várias 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
É possível dimensionar manualmente o espaço de cache para cima ou para baixo conforme as necessidades do seu 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
Diferente 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, garantindo 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 OSSOSS 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
AnalyticDB for MySQL foi testado com base no {{XREF_0}} para comparar dois métodos: habilitar o lake cache e acessar diretamente o espaço de armazenamento do OSS. Nesse teste, a habilitação do recurso lake cache melhorou a eficiência de acesso aos dados em 2,7 vezes. Para resultados detalhados dos testes, 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 {{XREF_1}} e {{XREF_2}}.
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), Singapore, US (Silicon Valley), US (Virginia) e Indonesia (Jakarta).
ImportanteSe você desejar usar o recurso lake cache em outras regiões, envie um ticket.
Em caso de falha de hardware do cache, as consultas de dados continuam a ser 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 está cheio, o acelerador substitui arquivos acessados com menos frequência por arquivos 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.
Habilitar 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 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, você pode seguir os mesmos passos para visualizar o tamanho do espaço de cache configurado.
Usar o lake cache
Após habilitar o lake cache, ao ler dados do OSS, é possível acelerar a leitura 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"
}
}
Se você quiser 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 dados lidos. Para isso, execute as etapas a seguir:
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 de destino 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 (%)
A porcentagem de solicitações de leitura atendidas pelo cache. Fórmula: (Acertos de Cache / Total de Solicitações de Leitura) × 100%.
LakeCache Cache Usage (B)
A quantidade de espaço de cache utilizado, em bytes.
Total Data Read from LakeCache (B)
A quantidade total de dados lidos do espaço de cache, em bytes.