Muitas empresas têm plataformas de dados heterogêneas e pilhas de tecnologia em diferentes unidades de negócios ou domínios de dados. Por décadas, eles estão lutando com escala, velocidade e correção necessárias para derivar informações oportunas, significativas e acionáveis de vastos e diversos ambientes de huge knowledge. Apesar de vários padrões e paradigmas arquitetônicos, eles ainda acabam com “pomadas de dados” perpétuas e silos em muitos formatos de dados não interoperáveis. Duplicação de dados constantes, oleodutos complexos de extrato, transformação e carga (ETL) e infraestrutura ampla leva a soluções proibitivamente caras, impactando adversamente o tempo de valor, tempo para mercado, custo complete geral de propriedade (TCO) e retorno do investimento (ROI ) para o negócio.
O Open Knowledge Lakehouse da Cloudera, alimentado pelo Apache Iceberg, resolve os desafios de huge knowledge do mundo actual mencionados acima, fornecendo um lago de dados unificado, com curadoria, compartilhável e interoperável, acessível por uma ampla variedade de mecanismos e ferramentas computados compatíveis com iceberg.
O catálogo Relaxation Apache Iceberg leva essa acessibilidade ao próximo nível, simplificando o compartilhamento de dados da tabela de iceberg e o consumo entre produtores e consumidores de dados heterogêneos por meio de uma especificação de API RESTful padrão.
Proposição de valor do catálogo de repouso
- Ele fornece APIs abertas e agnósticas de metastore para operações de metadados de iceberg, simplificando drasticamente o cliente iceberg e a integração de metastore/motor.
- Abstrai os detalhes da implementação do again -end da Metastore dos clientes Iceberg.
- Ele fornece acesso a metadados em tempo actual, integrando diretamente a metástore compatível com iceberg.
- O Apache Iceberg, juntamente com o catálogo restante, simplifica drasticamente a arquitetura de dados corporativos, reduzindo o tempo para valorizar, tempo para mercado e TCO em geral e dirigir o ROI maior.
A Cloudera Open Knowledge Lakehousedistribuído por Apache iceberg E o catálogo restante, agora fornece a capacidade de compartilhar dados com motores não-esclarecidos de maneira segura.
Com o Open Knowledge Lakehouse da Cloudera, você pode melhorar a produtividade do profissional de dados e lançar novos aplicativos de IA e dados muito mais rápido com os seguintes recursos principais:
- Multi-motor Interoperabilidade e compatibilidade com o Apache Iceberg, incluindo Cloudera Dataflow (NIFI), Cloudera Stream Analytics (Flink, SQL Stream Builder), Cloudera Knowledge Engineering (Spark), Knowledge Warehouse de Knowledge Warehouse (Hive) e Cloudera AI (Antiga aprendizagem de máquina de cloudera)) .
- Viagem no tempo: Reproduzir uma consulta a partir de um determinado horário ou ID de instantâneo, que pode ser usado para auditorias históricas, validando os modelos ML e reversão de operações errôneas, como exemplos.
- Reversão da mesa: Permita que os usuários corrigem rapidamente os problemas revertendo as mesas para um bom estado.
- Conjunto rico de comandos SQL (Question, DDL, DML): Crie ou manipular objetos de banco de dados, executar consultas, carregar e modificar dados, executar operações de viagem no tempo e converter mesas externas de colméia em mesas de iceberg usando comandos SQL.
- Tabela no native (esquema, partição) Evolução: Evoluir esquema de tabela de iceberg e format de partição em tempo actual sem exigir alterações de reescrita, migração ou aplicativos de dados.
- Integração da experiência de dados compartilhados de Cloudera (SDX): Forneça gerenciamento unificado de segurança, governança e metadados, bem como linhagem de dados e auditoria em todos os seus dados.
- Replicação de iceberg: Recuperação de desastres pronta para uso e capacidade de backup de tabela.
- Fácil portabilidade das cargas de trabalho entre nuvem pública e nuvem privada sem nenhum código de refatoração.
Visão geral da solução
O compartilhamento de dados é a capacidade de compartilhar dados gerenciados em Cloudera, especificamente tabelas de iceberg, com usuários externos (clientes) que estão fora do ambiente de Cloudera. Você pode compartilhar dados da tabela de iceberg com seus clientes que podem acessar os dados usando mecanismos de terceiros como Amazon AthenaTrino, Databricks ou Snowflake que suportam o catálogo de descanso de iceberg.
A solução coberta por este weblog descreve como Cloudera compartilha dados com um caderno Amazon Athena. O Cloudera usa um serviço de catálogo REST Metastore (HMS) de Hive (HMS) implementado com base na especificação da API do catálogo de Relaxation Relaxation. Este serviço pode ser disponibilizado para seus clientes usando o mecanismo de autenticação OAuth definido pelo
Sistema de gerenciamento de token da Knox e usando políticas do Apache Ranger para definir os compartilhamentos de dados para os clientes. A Amazon Athena usará a API Open do Catálogo de Restos do Iceberg para executar consultas contra os dados armazenados em mesas de iceberg de Cloudera.
Pré-requisitos
Os seguintes componentes da Cloudera na nuvem devem ser instalados e configurados:
Os seguintes pré -requisitos da AWS:
- Uma conta da AWS e um papel de IAM com permissões para Crie cadernos Athena
Neste exemplo, você verá como usar a Amazon Athena para acessar dados que estão sendo criados e atualizados em mesas de iceberg usando Cloudera.
Por favor, faça referência à documentação do usuário para instalação e configuração de Cloudera Cloud Public.
Siga as etapas abaixo para configurar a Cloudera:
1. Crie banco de dados e tabelas:
Abra o tom e execute o seguinte para criar um banco de dados e tabelas.
CREATE DATABASE IF NOT EXISTS airlines_data; DROP TABLE IF EXISTS airlines_data.carriers; CREATE TABLE airlines_data.carriers ( carrier_code STRING, carrier_description STRING) STORED BY ICEBERG TBLPROPERTIES ('format-version'='2'); DROP TABLE IF EXISTS airlines_data.airports; CREATE TABLE airlines_data.airports ( airport_id INT, airport_name STRING, metropolis STRING, nation STRING, iata STRING) STORED BY ICEBERG TBLPROPERTIES ('format-version'='2');
2. Carregue dados em tabelas:
Em matiz, execute o seguinte para carregar dados em cada tabela de iceberg.
INSERT INTO airlines_data.carriers (carrier_code, carrier_description) VALUES ("UA", "United Air Traces Inc."), ("AA", "American Airways Inc.") ; INSERT INTO airlines_data.airports (airport_id, airport_name, metropolis, nation, iata) VALUES (1, 'Hartsfield-Jackson Atlanta Worldwide Airport', 'Atlanta', 'USA', 'ATL'), (2, 'Los Angeles Worldwide Airport', 'Los Angeles', 'USA', 'LAX'), (3, 'Heathrow Airport', 'London', 'UK', 'LHR'), (4, 'Tokyo Haneda Airport', 'Tokyo', 'Japan', 'HND'), (5, 'Shanghai Pudong Worldwide Airport', 'Shanghai', 'China', 'PVG') ;
3. Tabela de iceberg de transportadoras de consultas:
Em matiz, execute a seguinte consulta. Você verá os 2 registros da transportadora na tabela.
SELECT * FROM airlines_data.carriers;
4. Catálogo de descanso de configuração
5. Configurar a política do Ranger para permitir acesso de “repouso-democrição” para compartilhar:
Crie uma política que permitirá que a função de “repouso” tenha acesso à tabela de operadoras, mas não terá acesso para ler a mesa dos aeroportos.
No Ranger, vá para Configurações> Funções para validar que sua função está disponível e recebeu grupos (s) atribuídos (s).
Nesse caso, estou usando uma função chamada – “UnitedAirLinesRole” que posso usar para compartilhar dados.
Adicione uma política no Ranger> Hadoop SQL.
Crie nova política com as seguintes configurações, não deixe de salvar sua política
- Nome da política: Política de Relaxation-Demo-Acesso
- Banco de dados de Hive: Airlines_data
- Mesa de colméia: transportadoras
- Coluna Hive: *
- Em permitir condições
- Selecione sua função em “Selecionar funções”
- Permissões: selecione
Siga as etapas abaixo para criar um pocket book Amazon Athena configurado para usar o catálogo REST ICEBERRE de Cloudera:
6. Crie um caderno Amazon Athena com o grupo de trabalho “Spark_Primary”
um. Forneça um nome para o seu caderno
b. Propriedades adicionais do Apache Spark – isso permitirá o uso do catálogo de descanso de iceberg de Cloudera. Selecione o botão “Editar em JSON”. Copie o seguinte e substitua <Nó de cloudera-knox-gateway>Assim, <Cloudera-env-name>Assim, <cliente-id>e <cliente-secreto> com os valores apropriados. Consulte o Weblog de Configuração do Catálogo REST para determinar quais valores usar para substituição.
{ "spark.sql.catalog.demo": "org.apache.iceberg.spark.SparkCatalog", "spark.sql.catalog.demo.default-namespace": "airways", "spark.sql.catalog.demo.sort": "relaxation", "spark.sql.catalog.demo.uri": "https:/// /cdp-share-access/hms-api/icecli", "spark.sql.catalog.demo.credential": " : ", "spark.sql.defaultCatalog": "demo", "spark.sql.extensions": "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions" }
c. Clique no botão “Criar”, para criar um novo pocket book
7. Pocket book Spark-Sql-Executar comandos através do catálogo REST
Execute os seguintes comandos 1 de cada vez para ver o que está disponível no catálogo Relaxation Cloudera. Você será capaz de:
- Veja a lista de bancos de dados disponíveis
spark.sql(present databases).present();
- Mude para o banco de dados Airlines_Data
spark.sql(use airlines_data);
- Veja as tabelas disponíveis (não deve ver a mesa dos aeroportos na lista retornada)
spark.sql(present tables).present();
- Consulte a tabela de transportadoras para ver as 2 operadoras atualmente nesta tabela
spark.sql(SELECT * FROM airlines_data.carriers).present()
Siga as etapas abaixo para fazer alterações na mesa da Cloudera iceberg e consulte a tabela usando a Amazon Athena:
8. Cloudera – Insira um novo recorde na tabela de transportadoras:
Em matiz, execute o seguinte para adicionar uma linha à tabela de transportadoras.
INSERT INTO airlines_data.carriers VALUES("DL", "Delta Air Traces Inc.");
9. Cloudera – Tabela de iceberg portadores de consultas:
Em matiz e execute o seguinte para adicionar uma linha à tabela de transportadoras.
SELECT * FROM airlines_data.carriers;
10. Pocket book Amazon Athena – Subconjunto de consultas de companhias aéreas (operadoras) para ver as alterações:
Execute a seguinte consulta – você deve ver 3 linhas retornadas. Isso mostra que o catálogo restante lidará automaticamente com as alterações do ponteiro de metadados, garantindo que você obtenha os dados mais recentes.
spark.sql(SELECT * FROM airlines_data.carriers).present()
11. Pocket book Amazon Athena – Tente consultar a tabela Aeroportos para testar a política de segurança está em vigor:
Execute a seguinte consulta. Esta consulta deve falhar, como esperado, e não retornará nenhum dado da mesa dos aeroportos. A razão para isso é que a política do Ranger está sendo aplicada e nega o acesso a esta tabela.
spark.sql(SELECT * FROM airlines_data.airports).present()
Conclusão
Neste put up, exploramos como configurar uma participação de dados entre Cloudera e Amazon Athena. Usamos a Amazon Athena para conectar -se pelo catálogo de Relaxation Iceberg para consultar dados criados e mantidos em Cloudera.
Os principais recursos da Cloudera Open Knowledge Lakehouse incluem:
- Compatibilidade multi-motor com vários produtos de cloudera e outras ferramentas compatíveis com REST iceberg.
- Viagem no tempo e reversão de mesa para recuperação de dados e análise histórica.
- Suporte abrangente de SQL e evolução do esquema no native.
- Integração com Cloudera SDX para segurança e governança unificadas.
- Replicação de iceberg para recuperação de desastres.
Amazon Athena é um serviço de análise interativo e sem servidor que fornece uma maneira simplificada e flexível de analisar petabytes de dados onde ele vive. recursos. Ao executar aplicativos Apache Spark no Athena, envia o código de faísca para processamento e recebe os resultados diretamente. Use a experiência simplificada do Pocket book no Amazon Athena Console para desenvolver aplicativos Apache Spark usando o Python ou use Athena Pocket book APIs. A integração do catálogo de Relaxation Relaxation Iceberg com a Amazon Athena permite que as organizações alavancem o poder de escalabilidade e processamento do EMR Spark para cargas de trabalho de processamento, análise e aprendizado de máquina em larga escala em grandes conjuntos de dados armazenados em mesas de iceberg de Cloudera.
Para empresas que enfrentam desafios com suas diversas plataformas de dados, que podem estar lutando com problemas relacionados a escala, velocidade e correção de dados, essa solução pode fornecer valor significativo. Esta solução pode reduzir os problemas de duplicação de dados, simplificar os pipelines ETL complexos e reduzir custos, melhorando os resultados dos negócios.
Para saber mais sobre o Cloudera e como começar, consulte Começando. Confira Knowledge aberta de Cloudera Lakehouse Para obter mais informações sobre os recursos disponíveis ou visite Cloudera.com Para detalhes sobre tudo o que Cloudera tem a oferecer. Consulte Começando com Amazon Athena