Diferença entre porco e Colmeia? Porquê as duas coisas? [fechado]
eu entendo que ...
linguagem de Porco O latim é uma mudança de (combina com a maneira como os programadores pensam) SQL estilo declarativo de programação e linguagem de consulta da colmeia parece SQL.
O Porco senta-se em cima de Hadoop e em princÃpio também pode sentar-se em topo de Driade. Posso estar errado, mas o Hive está. estreitamente ligado ao Hadoop.
tanto os comandos Pig Latin como Hive compila para mapear e reduzir empregos.
a minha pergunta-Qual é o objectivo de ter ambos quando um (digamos porco) pode servir o propósito. É só porque o porco é evangelizado pelo Yahoo! e a colmeia pelo Facebook?
19 answers
Suportar a sintaxe SQL também significa que é possÃvel integrar com as ferramentas BI existentes, como a Microestratégia. Hive tem um driver ODBC / JDBC (que é um trabalho em andamento) que deve permitir que isso aconteça no futuro próximo. Ele também está começando a adicionar suporte para Ãndices que devem permitir suporte para consultas drill-down comuns em tais ambientes.
Por fim, isto não é pertinente para a questão directamente, a colmeia é uma estrutura para a realização de consultas analÃticas. Enquanto o uso dominante é a consulta de arquivos planos, não há nenhuma razão pela qual ele não pode consultar outras lojas. Atualmente o Hive pode ser usado para pesquisar dados armazenados no Hbase (que é uma loja de valores-chave como os encontrados nas entranhas da maioria das RDBMSes), e o projeto HadoopDB tem usado o Hive para consultar um nÃvel federado de RDBMS.Sobre alterações/actualizações incrementais em conjuntos de dados:
Em vez disso, juntar-se aos novos dados incrementais e usar o resultados juntamente com os resultados do anterior juntar é a abordagem correcta. Isto vai demorar apenas alguns minutos. Base de dados-padrão as operações podem ser implementadas desta forma incremental no Suin Latin, fazendo do porco uma boa ferramenta para este caso de uso.
Ao utilizar outras ferramentas através do streaming:
A integração do porco com o streaming também facilita aos investigadores pegue num programa Perl ou Python que já tenha depurado num pequeno conjunto de dados e executá-lo contra um enorme conjunto de dados.
Ao usar a colmeia para obter dados armazenagem:
Em ambos os casos, o modelo relacional e o SQL são o melhor ajuste. Realmente, data warehousing tem sido um dos principais casos de uso para SQL através grande parte da sua história. Tem as construções certas para apoiar os tipos de consultas e ferramentas que os analistas querem usar. E já está em utilizar tanto pelas ferramentas como pelos utilizadores no campo.
A colmeia do subprojeto Hadoop fornece uma interface SQL e relacional. modelo para o Hadoop. A equipa da colmeia começou a trabalhar para integrar com BI ferramentas via interfaces como ODBC.
Dá uma vista de olhos a porco Vs Colmeia numa comparação com casca de noz de um artigo "dezyre"
A Colmeia é melhor que o PIG em: partições, servidor, interface Web e suporte para o JDBC/ODBC.
Algumas diferenças:
A Colmeia é melhor para dados estruturados & o PIG {[3] } é melhor para os dados semiestruturados
A Colmeia é utilizada para a apresentação de relatórios & PIG for Programação
A Colmeia é utilizada como um SQL declarativo & PIG como uma linguagem processual
A Colmeia suporta as partições & O Porco não
A Colmeia pode iniciar um servidor opcional baseado em thrift & O Porco não Pode
A Colmeia define as tabelas de antemão ( esquema ) + guarda as informações do esquema numa base de dados & o PIG não tem metadados especÃficos da base de dados
A Colmeia não suporta o Avro mas O Porco suporta. Editar: a colmeia suporta o Avro; indique o serde como org.Apache.hadoop.ramo.serde2.avro
O Pig também suporta uma caracterÃstica adicional do COGROUP para a realização das juntas exteriores, mas o hive não. Mas ambos colmeia e porco podem unir, ordenar e ordenar dinamicamente.
Porco: uma linguagem de dados e ambiente de exploração de grandes dimensões conjunto.
Colmeia: um armazém de dados distribuÃdo
Pode obter resultados semelhantes com consultas de suÃnos/colmeias. A principal diferença reside na abordagem para compreender/escrever / criar consultas.
O Porco tende a criar um fluxo de dados: pequenos passos onde cada um faz algum processamento
A colmeia dá-lhe uma linguagem semelhante à SQL para operar com os seus dados, por isso a transformação do RDBMS é muito mais fácil (O Porco pode ser mais fácil para alguém que não tinha experiência anterior com o SQL) {[[2]}
Também vale a pena notar que para a colmeia podes ser simpático. interface para trabalhar com estes dados (Beeswax para matiz, ou interface web colmeia), e também lhe dá metastore para informações sobre seus dados (schema, etc) que é útil como uma informação central sobre seus dados.
Eu uso tanto o Hive como o Pig ,para diferentes consultas ( eu uso aquela onde eu posso escrever a consulta mais rápido / mais fácil, eu faço isso desta forma principalmente consultas ad-hoc) - eles podem usar os mesmos dados como uma entrada. Mas neste momento estou a fazer muito do meu trabalho através de Cera De Abelhas.
O Porco permite carregar dados e códigos de utilizador em qualquer ponto do oleoduto. Isto pode ser particularmente importante se os dados forem dados de streaming, por exemplo dados de satélites ou instrumentos.
A Colmeia, que é baseada em RDBMS, precisa que os dados sejam primeiramente importados (ou carregados) e depois disso podem ser trabalhados. Por isso, se estivesse a usar a colmeia em dados de transmissão, teria de continuar a encher baldes (ou ficheiros) e usar a colmeia em cada balde cheio , enquanto usava outros baldes para continuar a armazenar os dados recém-chegados.
O Porco também usa a avaliação preguiçosa. Ele permite uma maior facilidade de programação e pode-se usá-lo para analisar dados de diferentes maneiras com mais liberdade do que em uma linguagem SQL como A Hive. Então, se você realmente queria analisar matrizes ou padrões em alguns dados não estruturados que você tinha, e queria fazer cálculos interessantes sobre eles, com porco você pode ir a uma distância justa, enquanto com Colmeia, você precisa de algo mais para jogar com os resultados.
Porco é mais rápido na importação de dados, mas mais lento na execução real do que uma linguagem amigável RDBMS como o Hive.
O Pig é adequado para a parallelização e, portanto, possivelmente tem uma aresta para sistemas onde os conjuntos de dados são enormes, ou seja, em sistemas onde você está mais preocupado com o rendimento dos seus resultados do que com a latência (o tempo para obter qualquer dado particular do resultado).
Http://www.aptibook.com/Articles/Pig-and-hive-advantages-disadvantages-features
Todos os aspectos são dados. Se você está na confusão que escolher, então você deve ver essa página web.
A Colmeia é como interface SQL que permite aos utilizadores SQL conhecedores ou outras ferramentas como Tableu/Microstrategy/qualquer outra ferramenta ou linguagem que tenha interface sql..
O porco é mais como um oleoduto ETL..com comandos passo a passo como declarar variáveis, looping , iterating, condicionais, etc.Prefiro escrever guiões de porcos em vez do QL da colmeia quando quero escrever uma lógica complexa passo a passo. Quando me sinto confortável a escrever um único sql para puxar os dados i quero usar a colmeia. para a colmeia terá de definir a tabela antes de questionar(como faz no RDBMS)
O propósito de ambos são diferentes, mas sob o capô, ambos fazem o mesmo, converter para mapa reduzir programas.Além disso, a comunidade Apache open source é adicionar cada vez mais recursos a ambos os projetos
Pig-latin é o estilo de fluxo de dados, é mais adequado para engenheiro de software. Enquanto o sql é mais adequado para a pessoa analÃtica que se acostumam ao sql. Para tarefas complexas, para Colmeia você tem que criar manualmente uma tabela temporária para armazenar dados intermediários, mas não é necessário para o porco.
O Pig-latin é adequado para uma estrutura de dados complicada( como um pequeno gráfico). Há uma estrutura de dados no porco chamada DataBag, que é uma colecção de tuplas. Às vezes é preciso calcular métricas que envolvem múltiplas tuplas (há uma ligação escondida entre tuplas, neste caso eu chamaria de gráfico). Neste caso, é muito fácil escrever um UDF para calcular as métricas que envolvem múltiplas tuplas. Claro que pode ser feito na Colmeia, mas não é tão conveniente como é no porco.
Escrever UDF em porco é muito mais fácil do que na colmeia, na minha opinião.
O Pig não tem suporte para metadados (ou é opcional, no futuro pode integrar o hcatalog). O Colmeia tem os metadados das tabelas armazenados na base de dados.
Você pode depurar o programa pig no ambiente local, mas seria difÃcil para o Colmeia fazer isso. A razão é o ponto 3. Você precisa configurar metadados da colmeia em seu ambiente local, muito consumindo tempo.
Http://www.hadoopwizard.com/when-to-use-pig-latin-versus-hive-sql/
Aqui estão algumas ligações adicionais para usar o porco ou a colmeia.
Em palavras mais simples, o Pig é uma plataforma de alto nÃvel para a criação de programas MapReduce usados com o Hadoop, usando scripts do pig processaremos a grande quantidade de dados no formato desejado.
Uma vez obtidos os dados processados, estes dados processados são mantidos em HDFS para processamento posterior para obter os resultados desejados.
Em cima dos dados processados armazenados iremos aplicar comandos SQL da colmeia para obter os resultados desejados, internamente estes comandos SQL da colmeia executam programas de redução de mapas.
A partir da ligação: http://www.aptibook.com/discuss-technical?uid=tech-hive4&question=What-kind-of-datawarehouse-application-is-suitable-for-Hive?
A colmeia não é uma base de dados completa. As restrições e limitações de design do Hadoop e HDFS impõem limites ao que o Hive pode fazer.A Colmeia é mais adequada para aplicações em data warehouse, onde
1) analisam-se dados relativamente estáticos,
2) não são necessários tempos de resposta rápidos e
Os dados não estão mudando rapidamente.
A Colmeia não fornece as caracterÃsticas cruciais necessárias para o processamento de transacções on-line do OLTP. Está mais perto de ser uma ferramenta OLAP, processamento analÃtico Online. Assim, o Hive é mais adequado para aplicações de data warehouse, onde um grande conjunto de dados é mantido e extraÃdo para insights, relatórios, etc.
Para dar uma visão geral de ambos de alto nÃvel, em resumo:
O Porco é uma álgebra relacional sobre o hadoop
2) a colmeia é uma SQL sobre o hadoop (um nÃvel acima do porco)
Que colmeia pode fazer que não é possÃvel no porco?
O particionamento pode ser feito usando Colmeia, mas não em porco, é uma forma de contornar a saÃda.
Que porco pode fazer que não é possÃvel na colmeia?
Referenciamento posicional-mesmo quando você não tem nomes de Campos, podemos referenciar usando a posição como $0 - para o primeiro campo, $1 para o segundo e assim por diante.
E outra diferença fundamental é que o porco não precisa de um esquema para escrever os valores, mas ... A colmeia precisa de um esquema.Pode ligar - se a partir de qualquer aplicação externa à colmeia usando o JDBC e outros, mas não com o PIG.
Nota: ambos são executados em cima de HDFS (sistema de arquivos distribuÃdos hadoop) e as declarações são convertidas para mapear programas de redução.
Quando estamos a usar o Hadoop no sentido em que significa que estamos a tentar fazer um enorme processamento de dados, o objectivo final do processamento de dados seria gerar conteúdo/relatórios a partir dele.
Por isso, internamente consiste em duas actividades principais. 1) Carregamento De Dados 2) Gerar conteúdo e usá-lo para o relatório /etc..Carregar / processar dados seria útil. Isto ajuda como um ETL (podemos realizar operações de etl usando scripts de porco.) Uma vez que o resultado é processado, podemos use colmeia para gerar os relatórios com base no resultado processado.
Colmeia: construÃda em cima de hdfs para processamento em armazém. Podemos geenerar relatórios adesivos facilmente usando colmeia a partir do conteúdo processado gerado pelo porco.O Porco é útil para cargas ETL em geral. Por exemplo, Conjunto de transformações que você precisa fazer aos seus dados todos os dias.
A Colmeia brilha quando é preciso fazer consultas ou explorar dados. Por vezes, pode funcionar como interface para a sua camada de visualização ( Tableau/Qlikview). Ambos são essenciais e têm um propósito diferente.