Copiado!

Banco de dados SQL Azure NextGen Release Preview



No episódio desta semana de dados expostos Scott recebe de volta Tony Petrossian, Gerente de Programa de Grupo para a continuidade dos negócios em banco de dados SQL Azure, que nos apresenta a versão de prévia do Azure banco de dados SQL. Esta versão introduz NextGen quase completa compatibilidade SQL Server e melhor desempenho para níveis premium, bem como facilitar o gerenciamento de grandes bases de dados, suporte para funções-chave de programação, um novo nível S3, e mais. Tony emociona com dois grandes demos mostrando a compatibilidade quase completa SQL Server e, em seguida, termina a sessão mostrando-nos uma bela demonstração destacando os aprimoramentos de desempenho para a oferta Premium. O melhor vídeo de 15 minutos irá ver em um longo tempo!

SQL Unplugged Episode 1



Bem-vindo ao episódio inaugural de SQL Unplugged, sua avenida para fazer a pergunta a, e falar com, os três indivíduo que possui o banco de dados relacional na Microsoft; Shawn Bice, Nigel Ellis, e Rohan Kumar. Em nosso primeiro episódio, Shawn e Nigel responder perguntas e discutir temas em torno do novo banco de dados SQL Azure NextGen, e dar-nos uma visão incrível para a história do SQL DB e do processo de trazer SQL DB para onde é hoje. Temos que ouvir a sua paixão para o SQL Server eo banco de dados relacional como eles falam sobre o quanto esses produtos têm vindo!
A partir de janeiro nossos shows será ao vivo!

Desenvolver mais rápido com o Framework Laravel PHP

Laravel é um framework PHP cada vez mais popular que pode ajudá-lo a desenvolver um código melhor, mais sustentável em um curto período de tempo.Usando suas características e conceitos embutidos, você pode salvar uma quantidade significativa de tempo, aumentando assim a sua produtividade e competitividade.
Laravel oferece uma série de características-chave, incluindo:
Cada ficheiro de base de dados tem o seu próprio classe (modelo), que é utilizado para interagir com a tabela. Aqui é um modelo de exemplo:
// Cada modelo é aa classe filha da classe Eloquent
classe Categoria estende Eloquent {

// Nome da tabela. Se omitido, Eloquent diria que o nome da tabela é o plural do nome da classe (categorias)
protegidas $ tabela = 'categoria';

// Chave primária. Se for omitido, a chave 'id' seria usado
protegido primaryKey = 'category_id';

// Se for definido como false, remove colunas da tabela created_at e updated_at
$ timestamps públicas = false;
}
Este modelo representa o seguinte banco de dados SQL:
CREATE TABLE SE NÃO EXISTE 'categoria' (
INT 'category_id' (10) NOT NULL AUTO_INCREMENT,
'INT parent_id (10) NOT NULL,
VARCHAR (255) NULL 'category_name',
(255) NULL VARCHAR 'alias',
'Category_order' INT (10) NULL default 0,
CHAVE PRIMÁRIA ('category_id'))
ENGINE = MyISAM
Em Laravel, existem muitas funções que são usadas para interagir com o banco de dados: buscar todas as linhas, buscar uma linha pela chave primária, use onde cláusula para filtragem de linha, fazer inserções, fazer atualizações, e muito mais. O código a seguir mostra exemplos de algumas das funções que você tem disponível:
// Fetch todas as categorias
$ Category = Categoria :: todos ();

// Obter uma categoria por chave primária (categoria cujo ID é 1)
$ Category = Categoria :: find (1);

// Use uma cláusula WHERE
$ Categorias = Categoria :: onde ('parent_id', '>', 0) -> get ();

// Inserir uma nova categoria
$ Category = new Categoria;
$ Categoria-> name = 'New categoria';
$ Categoria-> save ();

// Atualização categoria existente
$ Category = Categoria :: find (1);
$ Categoria-> name = 'New categoria';
$ Categoria-> save ();
Existem muitas outras funções de banco de dados em eloqüente. Mas se você não gosta de eloquente, você também pode usar construtor de consultas para criar consultas SQL no Laravel.

Autenticação no Laravel

Uma biblioteca de autenticação é pré-instalado no quadro Laravel. Embora seja fácil de implementar, tem muitos recursos avançados, tais como Bcrypt hashing, verificando se um usuário está ativo, um "Remember Me" opção, CSRF (Cross-site Request Forgery) proteção, de redefinição de senha e criptografia.
Por exemplo, o seguinte código deve ser usada para a página de login:
$ Email = Entrada :: get ('email');
password = Input :: get ('password');

if (Auth :: tentativa (array ('email' => $ email, 'password' => $ password, 'ativa' => 1))) {
// Faz alguma coisa se o login for bem-sucedida
} Else {
:: voltar Redirect para ('user / login') -> com ('msg', 'senha') -> withInput ();
}
Assim, em 8 linhas de código, temos tentou fazer logon em um usuário que tem um certo nome de usuário e senha, e que está ativo.
Para fazer uma página apenas para membros, você faria o seguinte:
if (! Auth :: cheque ()) {
:: voltar Redirect para ('user / login');
}

Eventos em Laravel

Eventos em Laravel permitir uma classe para inscrever-se e escutar eventos em sua aplicação. Em outras palavras, é possível adicionar ou remover facilmente as tarefas que devem executar sempre que um evento acontece. Vamos dar uma olhada no exemplo:
Função Pública add () {
$ User = Usuário :: create ();
$ Response = Evento :: fogo ('user.create', array ($ user));
}
Agora, é possível ouvir o evento "user.create" e executar métodos sempre que esse evento acontece.Ele é feito assim:
Evento :: ouvir ('user.create', function ($ user)
{
$ User-> sendMail ();
});
Usando eventos aumenta a modularidade aplicação e acelera o processo de desenvolvimento.

Filas em Laravel

As filas são úteis para adiar a execução de uma tarefa que consome tempo, até que um tempo mais tarde. Como resultado, a velocidade do website é significativamente melhorada. A fila Laravel fornece integração com os serviços de enfileiramento mais populares: Beanstalkd, IronMQ, Amazon SQS, e Redis. No entanto, também é possível usar um sistema de fila local.
Para adicionar uma função para uma fila, basta usar:
Queue :: push ("User @ sendMail ', array (' message '=> $ message));
onde "Utilizador" é o nome do controlador, "sendMail" é o nome do método e "mensagem" é o método de argumento.

Caching

Laravel fornece não só os sistemas de cache básicos, como armazenar os objetos no arquivo ou um banco de dados, mas também pode ser integrado com sistemas de cache populares, como APC, Memcached, ou Redis. Isso significa que ele é adequado para pequenas e grandes aplicações.
Implementação do caching Laravel é simples:
// Adicionar um valor cache se ele não existir
Cache :: adicionar ("chave", "valor", $ minutos);

// Verificar se existe um valor no cache
if (Cache :: tem ('chave'))
{
// Faz alguma coisa aqui
}

// Obter um item do cache
$ Value = Cache :: get ('chave');

// Remove um item do cache
Cache :: esquecer ("chave");

Outras características

O quadro Laravel também suporta outros recursos úteis, como localização, gerenciamento de sessão, os comandos SSH, paginação, forma e as funções de ajuda HTML, biblioteca para o envio de e-mail, e assim por diante. Além disso, possui recursos avançados para testes e implantação de aplicativos;estes serão completamente explicada no próximo artigo. Até então, tentar Laravel e veja como você pode fazer mais trabalho na mesma quantidade de tempo.

Big Data Tool: Map-Reduce

Visão global

No último par de artigos , eu discuti Hadoop / Big Data e seus benefícios .Sabemos como Big Data está evoluindo e do ecossistema Hadoop pode ser útil para fazer análises sobre uma enorme quantidade de dados / meias / estruturados un.
Vamos discutir várias ferramentas que são os principais drivers para alcançar o objetivo, a análise de dados média em Big Data. Depois de ler este artigo, você vai conhecer os caminhos fundamentais para usar algumas das ferramentas de Big Data importantes que pertencem a diferentes comunidades de desenvolvedores.

Ferramentas Big Data / Hadoop

No mundo Big Data dentro do ecossistema Hadoop, existem muitas ferramentas disponíveis para processar os dados constantes no HDFS. Tal como acontece com o framework Hadoop, essas ferramentas também são parte de código aberto como o Hive, Pig, escrevendo programa Map-Reduce usando Java, HBase, Phoenix, e muitos mais. Todas estas ferramentas cobrir diferentes partes da comunidade de desenvolvedores; por exemplo: os desenvolvedores Java, SQL programadores ou programadores Non Jan & SQL e assim por diante.
No último artigo, discutimos várias ferramentas do ecossistema Hadoop. Nesta série de artigos vamos discutir três ferramentas importantes: Escrevendo Map-Reduce em Java, Hive, e Porco. Essas três ferramentas pertencem a diferentes pilhas de tecnologia:
  • Programador Java / Desenvolvedor: As pessoas que pertencem a esta tecnologia pode processar dados através do desenvolvimento de Map-Reduce programas em Java.
  • SQL Programador / Desenvolvedor: As pessoas que pertencem a esta tecnologia pode processar dados usando HIVE-QL Script e outras Linguagens De Consulta Estruturada.
  • Não JAVA ou SQL Programador / Desenvolvedor: Pessoas whobelong a esta tecnologia pode processar os dados usando um script PIG.
Essas três ferramentas pertencem a diferentes comunidades de desenvolvedores que ampliam a oportunidade de a maior parte da comunidade de desenvolvedores para alavancar o framework Hadoop para processamento de dados no mundo Big Data.

Compreender o Framework Map-Reduce

Map-Reduce, ou MR, é um framework escrito em Java para resolver um problema que será considerado como um trabalho no ambiente Hadoop. Há outros componentes envolvidos para executar um programa de MR e dão os resultados desejados.
Anatomia de MR ou do trabalho da MR programa: quadro MR definiu de trackers JobTracker & TaskTracker que ajudam a executar trabalhos de RM em todos os nós de cluster do Hadoop disponíveis separadamente, acompanhar o processamento e combinar a saída de trabalhos de RM para produzir os resultados desejados.BigData01
Figura 1 : O fluxo de execução Job MR
Aqui é o entendimento passo-a-passo do MR processamento do trabalho e JobTracker & TaskTracker responsabilidades:
Passo 1: O cliente envia um trabalho MR.
Passo 2: JobTracker recebe o trabalho de MR a partir do cliente e inclui as seguintes etapas:
Passo 2.1: JobTracker atribui JobID e local de trabalho em uma fila interna.
Passo 2.2: O agendador de tarefas pega o trabalho de uma fila e inicializa-lo, criando um objeto encapsulado com suas tarefas e outras informações, tais como o progresso de cada tarefa.
Passo 2.3: JobTracker usa um algoritmo de programação interna que determina qual a tarefa do trabalho deve ser processado em primeiro lugar.
Passo 2.4: JobTracker atribui tarefas aos TaskTracker, que está pronto para disponível para executar a tarefa.
Passo 3: TaskTracker tem um número fixo de slots para o seu mapa e reduzir a tarefa. Por padrão, existem dois slots para mapeamento e dois slots para a redução de tarefas.
Passo 3.1: TaskTracker primeiras cópias do frasco do sistema de arquivos compartilhados no sistema de arquivos rastreador tarefa local.
Passo 3.2: TaskTracker cria um diretório de trabalho local para a tarefa e unjars o conteúdo.
Passo 3.3: TaskTracker cria uma instância de TaskRunner para executar cada tarefa. Para cada tarefa, TaskRunner usa uma nova JVM, de modo que o mapa definido pelo usuário e reduzir funções não afetam outras tarefas.
Passo 3.3.1: Limpe, A ação de limpeza compromete a tarefa em que a saída de tarefas deve ser escrito; em outras palavras, a localização do ficheiro.
Passo 3.3.2: ações de instalação. A ação de configuração envolve a inicialização do trabalho com alguns parâmetros.
Passo 3.3.3: Aciona a execução da tarefa.
Passo 3.3.4: TaskRunner envia cada estado da tarefa para TaskTracker enviando o seu estatuto de bandeira.
Passo 3.4: TaskTracker envia uma pulsação a cada cinco segundos para JobTracker insinuar o status de todas as tarefas que lhe são atribuídas.
Passo 4: Depois JobTracker receber o status final de todos os postos de trabalho TraskTracker, segue-se a seguinte seqüência:
Passo 4.1: JobTracker combina todas as atualizações recebidas de TaskTracker.
Passo 4.2: Internamente actualiza o estado de JobID e gera a saída.
Passo 4.3: Retorna o status do trabalho para o cliente MR quando se pinga JobTracker.
Passo 5: O cliente Job recebe seu status que está concluído e o estado é impressa no console, para ser visto pelo usuário.
O conjunto anterior de etapas é útil para compreender o fluxo end-to-end de um MR Job. Há muitas outras opções disponíveis para alterar a prioridade de execução e ranhuras que podem ser configurados em mapred-site.xml e muitos mais.

Problema Amostra

Hoje, vamos aprender a escrever um primeiro programa MR para a solução de um problema:
Problema: Descubra quantas pessoas pertencem a cada estado.
Para fins de exemplo, eu preparei um arquivo users.txt com cinco colunas. Segue-se a estrutura do arquivo com dados de amostra preenchido:
<ID do usuário>, <usuário>, <cidade>, <estado>, <país>
1, John, Montgomery, Alabama, EUA
2, David, Phoenix, Arizona, EUA
3, Sarah, Sacramento, Califórnia, EUA
4, Anoop, Montgomery, Alabama, EUA
5, Marinda, Phoenix, Arizona, EUA
6, Maria, Sacramento, Califórnia, EUA
7, Jony, Phoenix, Arizona, EUA
8, Wilson, Montgomery, Alabama, EUA
9, Jina, Lincoln, Nebraska, EUA
10, James, Columbus, Ohio, EUA

Pré-requisito para o Programa MR

Para resolver o problema de exemplo anterior, há certas coisas que devem estar disponíveis e configurado corretamente para obter o resultado desejado. Eu vou te mostrar o que as ferramentas devem ser instalados ea configuração necessárias que devem estar no local como um pré-requisito para começar a escrever o seu primeiro programa de MR.
Ferramentas:
  1. Eclipse IDE (Qualquer versão mais recente)
  2. Java 1.6 ou 1.6 +
  3. Hadoop 1.2.1
Configurações:
Você pode obter todos os arquivos de configuração necessários após extrair o jar presentes na pasta / conf Hadoop_1.2.1:
  1. mapred-site.xml
    BigData02
    Figura 2 : Conteúdo do mapred-site.xml
  2. hdfs-site.xml
    BigData03
    Figura 3 : Conteúdo do hdfs-site.xml
  3. núcleo-site.xml
    BigData04
    Figura 4 : Conteúdo do core-site.xml
  4. hadoop-env.sh
    BigData05
    Figura 5 : Índice de hadoop-env.sh
Você precisa seguir os próximos passos para confirmar que Hadoop instalado e todas as configurações são colocados corretamente:
Passo 1: Abra um prompt de comando e navegue pela <-path instalado> /hadoop-1.2.1 caminho.
Passo 2: Execute o ./bin/start-all.sh comando para iniciar componentes do Hadoop (HDFS e MapReduce).
Passo 3: Você pode validar que HDFS e MapReduce estão funcionando corretamente, utilizando as seguintes URLs em um navegador:
hdfs: // localhost: 50070 / dfshealth.jsp
hdfs: // localhost: 50030 / jobtracker.jsp
Passo 4: Você pode parar HDFS e MapReduce, executando o followingcommand:
<-Path instalado> /hadoop-1.2.1/.bin/stop-all.sh

Map-Reduce Programa

Assim que estiver pronto com os pré-requisitos, vamos começar a escrever o primeiro programa de MR para resolver o problema anterior. Este programa MR conteria três arquivos:
  1. Programa Motorista
  2. Folders Programa
  3. Reduzir o Programa
Vamos abrir Eclipse e siga estes passos para criar os programas necessários:
BigData06
Figura 6 : Criando os programas necessários
Passo 1: Criar um novo espaço de trabalho com o nome de "Hadoop"
Passo 2: Crie um novo projeto Java "MRProgram" em Eclipse usando o ambiente JAVA construída sobre Java 1.6 e acima.
Passo 3: incluir as bibliotecas dependentes Hadoop para o projeto "MRProgram".
Passo 4: Criar uma pasta de entrada no projeto "MRProgram" e criar users.txt com os dados especificados na seção intitulada "Problema de exemplo".
Passo 5: Abra um .classpath do projeto "MRProgram", e certifique-se que tem os seguintes dados:
BigData07
Figura 7 : Examinando o caminho de classe
Passo 6: Faça um programa de driver, seu principal arquivo, que atua como um trabalho para apresentar o Mapper e programas de redução. Por exemplo: UserDriver.java.
BigData08
Figura 8 : O arquivo UserDriver.java
Passo 7: Faça um programa Mapper. Ele lê arquivo linha por linha, analisa cada linha separada por uma " , "(vírgula), e em seguida, ele grava os dados na forma de um par de chaves e valor e torna disponível para o programa redutor. No nosso caso, Key será o nome do estado e valor será de toda a linha.
A Figura 9 é o programa UserMapper.java:
BigData09
Figura 9 : O programa UserMapper.java
BigData10
Figura 10 : O programa UserMapper.java, depois de ser executado
Passo 8: Escreva um programa redutor. Ele lê saída mapeador, e os processos de cada chave e valor de mapeador. No nosso caso, temos que contar quantos usuários são de cada estado.
A Figura 11 é o programa redutor:
BigData11
Figura 11 : O programa Redutor
Passo 9: Execute o programa UserDriver.java em Eclipse. Ele irá executar programas tanto o cartógrafo e redutor e cria e pasta de saída com dois seguintes arquivos:
_SUCCESS: não _SUCCESS não contém nada.
Parte-r-0000: Parte-r-0000 contém a saída desejada do Programa MR.
BigData12
Figura 12 : Demonstrando Part-r-0000
A saída precedente é o resultado desejado, o que dá estado de contagem usuário sábio.
O diretório de saída deve ser suprimida antes de iniciar UserDriver.Java porque o trabalho MR não substituirá o diretório de saída existente e dá uma exceção.

Resumo

Neste artigo, nós falamos sobre as ferramentas de Big Data que são úteis na análise de dados.Discutimos os fundamentos do framework Map-Reduce e MR processamento do trabalho. A disponibilidade de Map = Reduzir proporcionou uma imensa oportunidade para a comunidade de desenvolvedores Java para entrar na dados e análises mundo. Nós escreveu um programa MR amostra para resolver o problema de amostra para compreender o requisito de ponta a ponta para o Programa de MR e a sua execução passo-a-passo.
No próximo artigo desta série, vamos falar sobre Hive e Pig.

Referências