Parâmetros com valor de tabela no SQL Server

Monitoring table-valued parameter tempdb activity


Parâmetros com valor de tabela, também conhecidos como TVPs, são comumente usados ​​para passar uma tabela como parâmetro para procedimentos ou funções armazenados. Eles são úteis de certa forma, podemos usar uma tabela como uma entrada para essas rotinas e podemos nos livrar de lidar com etapas mais complexas para alcançar esse processo.

Introdução

A maioria de nós já ouviu essa pergunta dos desenvolvedores de software que estão familiarizados com o SQL Server:

“Como podemos passar uma lista de parâmetros para um procedimento armazenado ou uma função?”

Parâmetro com valor de tabela do SQL Server em quadrinhos

Basicamente, neste artigo, tentaremos encontrar a resposta para esta pergunta. No entanto, a resposta curta a esta
    pergunta pode ser assim:

“Quando um aplicativo orientado a dados precisa de uma lista de parâmetros para quaisquer rotinas, podemos solucionar esse problema usando o método
    TVPs ”. Nas próximas seções deste artigo, aprenderemos a usar parâmetros com valor de tabela com exemplos simples. Dessa forma, construiremos um melhor entendimento para responder a essa pergunta também.

Tipos de tabela definidos pelo usuário

Tipos de tabela definidos pelo usuário são as tabelas predefinidas que a definição de esquema é criada pelos usuários e ajuda a armazenar dados temporários. Os tipos de tabela definidos pelo usuário suportam chaves primárias, restrições exclusivas e valores padrão, etc.
    No entanto, a capacidade perceptível do tipo de tabela definido pelo usuário é que ele é usado como o tipo de tabela referenciado quando queremos passar um TVP para procedimentos armazenados ou funções definidas pelo usuário.

A sintaxe de definição de tipos de tabela definida pelo usuário é semelhante a abaixo:

Quando executamos a consulta acima, podemos ver o tipo de tabela definido pelo usuário criado sob o Tipos de tabela definidos pelo usuário pasta no SQL Server Management Studio (SSMS).

Localizando o tipo de tabela definido pelo usuário no SSMS

Usando parâmetros com valor de tabela em procedimentos armazenados

Os TVPs referenciam seus tipos da tabela definida pelo usuário para herdar o esquema da tabela. Dessa maneira, podemos obter um parâmetro que pode transferir as várias colunas e linhas para o procedimento armazenado como entrada. Dessa maneira, os vários valores de parâmetro podem passar como uma entrada para o armazenado e, em seguida, podem ser manipulados pelo procedimento armazenado.

Neste primeiro exemplo, inseriremos várias linhas em uma tabela com a ajuda do TVP. Em primeiro lugar, criaremos um
    tabela cujo nome é Lição.

Na segunda etapa, criaremos um procedimento armazenado que pode aceitar LessonType como um parâmetro.
    Portanto, o procedimento armazenado terá a capacidade de obter uma tabela como parâmetro. Neste procedimento armazenado, iremos
    insira todas as linhas do @ParLessonType variável para o Lição tabela.

Dica: Os TVPs devem ser declarados somente leitura, portanto, usamos o SOMENTE LEITURA
palavra-chave na definição do parâmetro A razão para esse método de uso é que não podemos fazer nenhuma manipulação
(INSERIR, ATUALIZAR, EXCLUIR) na TVP no corpo de rotina.

Nesta última etapa, declararemos um TVP referenciado no LessonType tipo de tabela e vontade
    passe para o procedimento armazenado.

Finalmente, quando verificamos o Lição tabela, podemos ver que as várias linhas foram inseridas em
    a mesa.

Exemplo de parâmetro com valor de tabela

Usando parâmetros com valor de tabela otimizados para memória

OLTP na memória, os objetos podem
    fornecer uma vantagem para melhorar o desempenho das consultas. Nesse contexto, as tabelas otimizadas para memória podem habilitar
    com acesso a dados mais eficaz. Partindo dessa idéia, parece possível criar TVPs com otimização de memória. o
    A principal vantagem do uso de TVPs com otimização de memória é minimizar a atividade do tempdb.

No exemplo a seguir, criaremos um tipo de tabela com otimização de memória:

Nesta sintaxe, o MEMORY_OPTIMIZED = ON A cláusula define que esse tipo de tabela é otimizado para memória.
    Além disso, criamos um índice de hash porque a tabela com otimização de memória requer pelo menos um índice para gerenciar os dados.

Agora, criaremos um procedimento armazenado que usa um tipo de tabela com otimização de memória como entrada.

Vamos tentar executar o Usp_InsertLessonMemOpt procedimento com valor de tabela otimizado para memória
    parâmetro.

Exemplo de parâmetro com valor de tabela com otimização de memória

Monitorando a atividade tempdb dos Parâmetros com Valor de Tabela

Mencionamos que os TVPs com otimização de memória não mostram atividade no banco de dados tempdb. Nesta parte, provaremos esse conceito. Inicialmente, iniciaremos o monitor de desempenho e limparemos todos os contadores existentes com a tecla Delete.

Ativando o monitor de desempenho

Na segunda etapa, clicaremos no (+) para adicionar um novo contador. Vamos descobrir o
SQL Server: bancos de dados e depois adiciona o Transação de gravação / s contra
    a Contadores adicionados painel para o banco de dados tempdb.

Medindo a transação de gravação / s

Inicialmente, executaremos a seguinte consulta em um loop 100000 vezes, que usará o TVP baseado em disco:

Após a conclusão desta consulta, executaremos a seguinte consulta que usará o TVP com otimização de memória.

Quando analisamos o gráfico do monitor de desempenho, ele representa que o único TVP baseado em disco cria atividade no tempdb.

Monitorando a atividade do parâmetro tempdb com valor de tabela

Em uma palavra, o uso de TVPs com otimização de memória reduz a atividade tempdb, apesar de esse tipo de uso poder aumentar o consumo de memória. Por outro lado, o TVP baseado em disco cria atividade no tempdb.

Você pode consultar “Como passar vários parâmetros para uma função com valor de tabela Inline”Deste artigo, as funções com valor de tabela embutido do SQL Server para aprender os detalhes de uso de TVPs com funções.

Conclusão

Neste artigo, aprendemos sobre os detalhes de uso do Parâmetro com Valor de Tabela e também mencionamos a otimização de memória
    Problemas de desempenho de TVPs. Nesse ponto, teremos que decidir qual tipo de TVP oferece o máximo benefício de acordo com o equilíbrio de consumo e desempenho de recursos.

Esat Erkec
Últimas mensagens de Esat Erkec (ver todos)

Comece sua jornada com o Azure Cosmos DB

Replicate data globally


Neste artigo, discutiremos por que precisamos usar o Azure Cosmos DB e como configurá-lo para armazenar e consultar nossos dados.

Antes disso, vamos diferenciar os mecanismos de banco de dados relacionais e não relacionais.

Relacional vs Não relacional

Ao trabalhar no mundo dos bancos de dados, você precisa distinguir entre os mecanismos de banco de dados relacionais e não relacionais.

Nos mecanismos de banco de dados relacional, como Microsoft SQL Server, MySQL, PostgreSQL e SQLite3, os dados serão armazenados em tabelas na forma de colunas e linhas, com a capacidade de vincular dados de diferentes tabelas usando restrições de chave estrangeira. Além disso, o esquema das tabelas de banco de dados relacional, que define o nome das colunas, o tipo de dados que pode ser armazenado nessas colunas e as restrições nas colunas da tabela, devem ser definidos.

Nos mecanismos de banco de dados não relacionais, também chamados de mecanismos de banco de dados NoSQL, como MongoDB, DocumentDB, Cassandra,
    Coachbase e HBase, os dados serão NÃO ser armazenado em tabelas com esquemas definidos. Em vez disso, os dados
    serão armazenados em um modelo de armazenamento otimizado, como lojas de valor-chave, lojas de gráfico, lojas e lojas de documentos.

Por que o Azure Cosmos DB?

O Azure Cosmos DB é um serviço de banco de dados do Microsoft Azure, serviço do Azure de crescimento mais rápido disponível em todo o Azure
    regiões, que se adapta a qualquer aplicativo Web, aplicativo móvel, jogo ou aplicativo IoT que exija processamento,
    lendo e escrevendo uma enorme quantidade de dados.

O Azure Cosmos DB fornece aos aplicativos:

  • o menor latência possível, latências inferiores a 10 ms para cargas de trabalho de leitura e gravação
            devido ao uso de armazenamento com suporte SSD e à replicação multimestre para seus dados onde quer que seus usuários estejam, permitindo
            os usuários se conectem à réplica mais próxima deles

  • o maior disponibilidade possível, até 99,999% de alta disponibilidade dos dados armazenados no
            DB do Cosmos devido à capacidade de executar failover regional para os bancos de dados da sua conta do Cosmos DB

  • o maior rendimento possível

  • Opções de consistência de variantes, com a consistência bem definida cinco
            opções, incluem robustez forte e limitada, sessão, prefixo consistente e eventual que forneça
            flexibilidade e baixa relação custo-desempenho
  • Opções de segurança avançadas, onde os dados do Cosmos DB serão criptografados em repouso e em movimento, em
            além da autorização no nível da linha
  • Escalável elasticamente e globalmente para as operações de leitura e gravação, que ajudam a lidar com
            picos inesperados de carga de trabalho, com a capacidade de modificar a estrutura atual a qualquer momento, adicionando ou removendo
            as regiões do Azure para sua conta do Cosmos
  • Suporte para várias APIs para trabalhar com seus dados armazenados no banco de dados Cosmos, como
            a API do SQL Core, Cassandra, MongoDB, Gremlin e armazenamento de tabelas do Azure, oferecendo uma maneira fácil de migrar
            o aplicativo para o Cosmos DB sem a necessidade de realizar mudanças significativas. Não requer esquema ou índice
            gerenciamento é, pois todos os dados serão indexados automaticamente e não requer gerenciamento complexo de vários datacenters ou
            implantações ou atualização de software de banco de dados

Por enquanto, estamos familiarizados com o conceito do Azure Cosmos DB e por que precisamos usá-lo para hospedar os dados usados ​​pelos aplicativos críticos. Vamos agora ver como criar uma nova conta de banco de dados.

Crie uma conta do Azure Cosmos DB

Para criar uma conta do Azure Cosmos DB, você precisa ter uma assinatura do Azure ou criar um Azure Cosmos gratuito
    Conta de avaliação do banco de dados.

Quando sua assinatura ou conta gratuita estiver pronta, abra o site do portal do Azure, https://portal.azure.com/, no navegador da Internet e faça login usando o
    conta de assinatura.

No portal do Microsoft Azure, procure o servidor do Azure Cosmos DB ou clique no ícone diretamente, se puder
    detectá-lo, como abaixo:

Portal do Microsoft Azure - Azure Cosmos DB

Na página aberta, clique no botão Criar conta do Azure Cosmos DB opção, para criar um novo Cosmos DB
    conta, como mostrado abaixo:

Portal do Microsoft Azure - Criar banco de dados do Azure Cosmos

Na página Criar Conta do Azure Cosmos DB, selecione a assinatura do Azure sob a qual você planeja criar o
    Conta do Cosmos DB e o grupo de recursos, o contêiner de recursos para o serviço do Azure usado para gerenciar
    todos os recursos que serão usados ​​para a conta do Cosmos DB. Você pode usar um grupo de recursos existente ou criar um novo
    grupo de recursos, como mostrado abaixo:

Portal do Microsoft Azure - Selecione Assinatura e grupo de recursos.

Depois disso, você será solicitado a fornecer todos os detalhes da instância do Cosmos DB que será criada, incluindo um
    único Nome da conta que será usado para identificar a conta do Azure Cosmos. Você pode usar apenas letras minúsculas, números e o hífen no nome da conta.

o API é o tipo de conta do banco de dados que será criada. Você pode escolher entre as cinco API mencionadas anteriormente, suportadas pelo Cosmos DB. Nesta demonstração, usaremos a API Core (SQL).

Você também precisa fornecer o Localização, que descreve o datacenter mais próximo da sua localização atual para fornecer o acesso mais rápido aos dados.

Você também pode ativar o Gravação em várias regiões opção para replicar seus dados para vários
    regiões. Por enquanto, podemos criá-lo em uma região e adicionar mais regiões posteriormente.

Depois de fornecer suas seleções, clique em Revisar + Criar opção como abaixo:

Criar conta do Azure Cosmos DB - Etapa 2

Criar conta do Azure Cosmos DB - Etapa 3

Na página Revisar + Criar, revise todas as seleções e clique no Crio opção para criar
    sua conta do Azure Cosmos DB, como mostrado abaixo:

Revisar e criar

Após alguns minutos, a conta do banco de dados será criada e implantada completamente. Clique no Vamos para
        recurso
opção para começar a trabalhar na conta do banco de dados, conforme mostrado abaixo:

Conta do Cosmos DB criada com sucesso.

A primeira página aberta é a página de Início Rápido que permite selecionar nas plataformas disponíveis e a próxima etapa para prosseguir com a conta do Azure Cosmos DB. Clique na página Visão geral abaixo:

Começo rápido

A página Visão geral mostra as informações gerais sobre a conta do banco de dados, a lista de contêineres disponíveis na conta do banco de dados e, finalmente, o painel de monitoramento da conta do Azure Cosmos DB.

Você pode ver que o URL usado para se conectar à conta do banco de dados será como https: //aycosmos.documents.azure.com: 443 /

Como está claro abaixo:

Página de visão geral

Se você ativar a opção Múltiplas regiões, poderá mover-se facilmente para o Replicar dados globalmente página e
    selecione as regiões nas quais planeja replicar seus dados, para fornecer acesso mais rápido aos dados para o seu
    clientes globais, como abaixo:

Replicar dados globalmente

Criar novo contêiner

Agora, a conta do Azure Cosmos DB está pronta e podemos criar um banco de dados nessa conta e adicionar contêineres de dados.

Para conseguir isso, vá para o Data Explorer página e clique no Novo contêiner
opção.

Na página Adicionar Contêiner, forneça o nome do banco de dados sob o qual o contêiner será criado, com o
    capacidade de criar mais de um contêiner por banco de dados ou selecionar um banco de dados existente, se disponível, com o
    capacidade de compartilhar a taxa de transferência provisionada para o banco de dados em todos os contêineres do banco de dados, para salvar
    o custo.

Nesta demonstração, manteremos o valor da taxa de transferência em 400 unidades de solicitação por segundo (RU / s).

Além disso, forneça um nome exclusivo para esse contêiner, seja para indexar automaticamente todos os dados para obter o melhor acesso a dados
    desempenho e a chave de partição que será usada para dividir os dados em partições lógicas na mesma
    contêiner e clique em Está bem para criar o banco de dados e o contêiner, como mostrado abaixo:

Criar contêiner de banco de dados

Adicionar novo item

Para adicionar um novo item de dados ao seu contêiner, vá para a página Data Explorer, expanda o banco de dados e procure o contêiner no qual deseja adicionar os dados.

No seu contêiner, clique em Itens e escolha Novo item opção para adicionar novos dados de funcionários. Depois de
    adicionando os valores das colunas EmpID, EmpName, EmpDep e IsActive, clique em Salve , onde novos seis
    os campos de metadados serão adicionados ao item, conforme mostrado abaixo:

Adicionar novo item

Nesta demonstração, repetiremos esse processo três vezes para adicionar novos itens.

Dados da consulta

Para consultar os dados inseridos, você pode facilmente clicar no Editar filtro opção na página Itens, onde
    você pode editar a consulta existente adicionando um filtro ou ordenando os dados em uma ordem específica. Neste exemplo, iremos
    classifique os itens com base no ID do funcionário, conforme mostrado abaixo:

Editar filtro para consultar os dados

Uma opção mais flexível é abrir uma janela de consulta e gravar sua consulta SQL para selecionar colunas específicas e recuperar os itens que atendem à condição fornecida.

No exemplo abaixo, usaremos a consulta SQL abaixo para recuperar o nome e o departamento dos funcionários ativos.
    Após escrever a consulta, clique em Executar consulta e o resultado será exibido, como mostrado
    abaixo:

Consulta avançada 1

Você pode usar suas habilidades de desenvolvimento SQL para escrever consultas mais complexas, como selecionar colunas específicas, fornecer uma
    condição para filtrar os dados na cláusula WHERE e classificá-los usando a cláusula ORDER BY, conforme mostrado abaixo:

Consulta avançada 2

Além do resultado da consulta executada, você pode revisar as estatísticas de desempenho de execução dessa consulta, como
    o número de RU consumidas, armazenamento e tempo, que ajuda na comparação das diferentes consultas e aprimora as consultas
    desempenho, como mostrado abaixo:

Estatística de execução da consulta

Conclusão

Está claro nos exemplos anteriores como é fácil configurar e usar o Azure Cosmos DB para armazenar e consultar os dados e aproveitar o excelente desempenho fornecido por ele no processamento e armazenamento de dados.

Ahmad Yaseen
Últimas mensagens de Ahmad Yaseen (ver todos)

Acessando o Armazenamento de Blob do Azure a partir dos Databricks do Azure

Uploading a block blob in Blob Storage container 3/7.


Introduzimos os Databricks do Azure, como ele é criado e alguns de seus componentes importantes no meu artigo anterior aqui. Veremos como podemos trabalhar com o Armazenamento de Blob do Azure nos Azure Databricks neste artigo.

O Armazenamento de Blob do Azure é um serviço de armazenamento no Azure que permite aos usuários armazenar grandes quantidades de dados não estruturados, como vídeos, áudios, imagens, texto, dados de backup etc. Este serviço em nuvem é uma abordagem econômica e escalável quando comparado ao local opções de armazenamento. Existem quatro tipos de armazenamento no Azure, incluindo armazenamento em Blob (objeto grande binário); você pode aprender sobre eles aqui: Diferentes tipos de armazenamento do Azure (arquivo, blob, fila e tabela).

Os Databricks do Azure são uma implementação do Apache Spark no Microsoft Azure. É uma câmara poderosa que lida com cargas de trabalho de big data sem esforço e ajuda na disputa e na exploração de dados. Permite executar trabalhos Spark em larga escala a partir de qualquer aplicativo Python, R, SQL e Scala. O Spark é escrito no Scala (um idioma de alto nível) e definitivamente existem alguns benefícios de desempenho se os comandos forem executados no Scala nos Azure Databricks.

Pré-requisitos

Para seguir este artigo, você precisa dos seguintes requisitos:

  1. Assinatura do Azure – cada recurso é marcado para uma assinatura no Azure. Você pode criar um para si mesmo aqui

  2. Serviço de Databricks do Azure – Você pode consultar este site para saber como criar um serviço de Databricks no Azure

  3. Armazenamento de Blob do Azure – Para isso, primeiro é necessário criar uma conta de Armazenamento no Azure. Clique aqui se você é novo no serviço de Armazenamento do Azure. Posteriormente, solicitaremos um arquivo .csv neste Armazenamento de Blob que acessaremos dos Databricks do Azure

Depois que a conta de armazenamento for criada usando o portal do Azure, enviaremos rapidamente um blob de bloco (.csv). Nota: O Armazenamento de Blobs do Azure oferece suporte a três tipos de blobs: bloco, página e anexo. Só podemos montar o blob de bloco no DBFS (Databricks File System), portanto, por esse motivo, trabalharemos em um blob de bloco.

  1. Navegue para sua conta de armazenamento no portal do Azure e clique em Containers

    Carregar um blob de bloco no contêiner de Armazenamento de Blob do Azure 1/7.

  2. Clique em + Container criar um novo contêiner

    Fazendo upload de um blob de bloco no contêiner de armazenamento de blob 2/7.

  3. Digite um nome para o contêiner, estou selecionando o nível de acesso padrão como Privado e, finalmente, pressione o Crio botão

    Fazendo upload de um blob de bloco no contêiner Blob Storage 3/7.

  4. O contêiner ‘azsqlshackcontainer’ foi criado com sucesso na conta de armazenamento

    Fazendo upload de um blob de bloco no contêiner Blob Storage 4/7.

  5. Clique no Envio para carregar um blob

    Fazendo upload de um blob de bloco no contêiner de armazenamento de blob 5/7.

  6. Isso abrirá o painel Upload, procure seu arquivo e clique no Envio botão. Você pode usar qualquer arquivo .csv. Caso queira se referir àquele que estamos usando nesta demonstração, faça o download aqui

    Fazendo upload de um blob de bloco no contêiner de armazenamento de blob 6/7.

  7. O blob de bloco “1000 Sales Records.csv” foi carregado com sucesso no contêiner

    Fazendo upload de um blob de bloco no contêiner Blob Storage 7/7.

Nossa estrutura final da conta de Armazenamento do Azure se parece com: Conta de Armazenamento do Azure (azsqlshackstorage) >> Contêiner (azsqlshackcontainer) >> Blob de Blocos (arquivo .csv).

Vamos continuar de onde paramos em nosso último artigo. Para o cluster azdatabricks, criado neste artigo, crie um bloco de anotações chamado accessingblobstorage e selecione Scala idioma, como mostrado abaixo. Trabalharemos neste bloco de dados para acessar o Armazenamento de Blob do Azure neste artigo.

Como criar um bloco de notas Scala nos Azure Databricks?

No portal Databricks, clique na área de trabalho na guia vertical esquerda do menu e selecione Criar >> Bloco de anotações. No Criar caderno Na caixa de diálogo, forneça um nome para o seu Notebook, escolha Scala como o idioma no Língua suspenso e todos os clusters em execução serão exibidos no menu suspenso Cluster. Como temos apenas um, ele será preenchido automaticamente.

Criar um bloco de notas Scala nos Azure Databricks

O bloco de notas Scala mostrado abaixo é criado com sucesso no portal de dados.

Bloco de notas Scala nos Azure Databricks

Resumo do esboço

Como nossa configuração básica inclui o Armazenamento de Blob do Azure (com um arquivo .csv) e o Serviço de Databricks do Azure (com um bloco de anotações Scala), vamos falar sobre a estrutura deste artigo. Vamos demonstrar o seguinte neste artigo:

  1. Primeiro, montaremos o Armazenamento de Blob nos Azure Databricks usando a API do Apache Spark Scala. Em palavras simples, leremos um arquivo CSV do Blob Storage nos Databricks

  2. Faremos uma rápida transformação nos dados e moveremos esses dados processados ​​para uma exibição SQL temporária nos Azure Databricks. Também veremos como podemos usar vários idiomas no mesmo caderno de dados

  3. Por fim, gravaremos os dados transformados no contêiner de armazenamento de blob do Azure usando a API Scala

Etapa 1: Montar um contêiner de Armazenamento de Blob do Azure

Para começar, você precisará saber o nome do seu contêiner, conta de armazenamento e sas (assinatura de acesso compartilhado). Este sas é concedido pela Microsoft para acessar os recursos de Armazenamento do Azure. Para gerar um sas, navegue até sua conta de armazenamento e clique em Assinatura de acesso compartilhado na folha Configurações. Verifique os valores apropriados; você também pode gerar o sas para um período específico. Por fim, clique em Gere SAS e cadeia de conexão para gerar e copiar o token SAS.

Gere SAS e string connectiong para o contêiner de Armazenamento de Blob.

Digite o código abaixo no bloco de notas Scala e pressione “Ctrl + Enter” para executá-lo.

Montar um contêiner de Armazenamento de Blob do Azure nos Databricks 1/2

Não se esqueça de alterar os valores para o containerName, storageAccountName e sas de acordo.

Depois de executado, clique no sinal + (marcado acima em um círculo vermelho) para continuar com a sua codificação.
  
  Execute o seguinte snippet de código que usa o utilitário Databricks para montar o Armazenamento do Azure.

Alguns pontos a serem observados aqui:

  1. O Databricks Utilities (dbutils) oferece utilitários com o FileSystems. Esta montagem configura a conexão entre os Azure Databricks e o Azure Blob Storage

  2. meu arquivo() é um caminho DBFS e representa qual contêiner / pasta será montado no DBFS, conforme especificado em “origem”. Você pode digitar seu

  3. config é o que é esse “fs.azure.sas”...blob.core.windows.net ”no nosso caso

Montando o contêiner Blob Storage no Databricks 2/2

Etapa 2: ler os dados

Execute o seguinte comando para ler o arquivo .csv no seu contêiner de armazenamento de blob.

  • Usaremos o comando spark.read para ler o arquivo e armazená-lo em um dataframe, mydf

  • Com a opção header = true, dizemos para usar a primeira linha do arquivo como cabeçalho

  • A opção padrão para inferSchema é false, portanto, definindo-o como true, o Spark inferirá o esquema de cada coluna automaticamente

  • / mnt / myfile permitirá que você leia a partir da montagem, você acessará arquivos em seu contêiner como se fossem arquivos locais

  • E, finalmente, use a função de exibição para exibir os registros do quadro de dados

  • Altere os valores no comando abaixo para o nome da montagem e o formato do arquivo, que é myfile e .csv, respectivamente, no nosso caso

Lendo os dados do Armazenamento de Blob nos Azure Databricks.

Etapa 3: transformar os dados

Para selecionar algumas colunas no conjunto de resultados, execute o comando abaixo.

Transformando os dados nos Azure Databricks usando a API Scala.

Vamos executar o código abaixo para renomear a coluna de SalesChannel para SalesPlatform.

Renomear colunas nos Azure Databricks usando Scala.

Os notebooks da Databricks oferecem um ótimo ambiente de colaboração para seus usuários. Clique no ícone de comentário acima (circulado em vermelho), adicione seu comentário e clique em Comente.

Comentando no bloco de notas Scala nos Azure Databricks.

Crie uma exibição ou tabela para consultar esses dados. Você pode fornecer qualquer nome de exibição temporário. Isso é tratado como uma tabela local e estará disponível apenas para este Notebook.

Criando uma visualização temporária no bloco de notas Scala no Databricks.

Agora vem a parte interessante dos cadernos, você pode substituir o idioma padrão, Scala, especificando o comando mágico do idioma,%. Portanto, usando% sql na parte superior, você pode alternar o idioma do Scala para o Spark SQL. O código abaixo recupera todos os resultados da exibição temporária, SalesData.

Vamos realizar uma agregação simples para calcular o lucro total de cada região para os canais online e offline.

Consultando dados usando o Spark SQL.

Etapa 4: gravar dados processados ​​de um bloco de dados do Azure Databricks no contêiner de Armazenamento de Blob

Vamos encapsular esta instrução SELECT no Spark SQL para salvar os resultados agregados em um quadro de dados.

A gravação de dados organizados no Armazenamento de Blobs nos Azure Databricks. 1/6

Abaixo está o snippet de código para gravar dados .csv transformados e agregados em um contêiner de Armazenamento de Blob do Azure usando a API Scala. Se, por algum motivo, você precisar reiniciar / pausar seu cluster, execute o conjunto de comandos cmd 1 mencionado na parte superior deste artigo.

A gravação de dados organizados no Armazenamento de Blobs nos Azure Databricks. 2/6

O código abaixo salvará os resultados armazenados em aggdata na pasta “SalesProfitData” no Blob Storage.

A gravação de dados organizados no Armazenamento de Blobs nos Azure Databricks. 3/6

Vá para o Armazenamento de Blob do Azure e você encontrará a pasta SalesProfitData criada. Também existe um arquivo de metadados.

A gravação de dados organizados no Armazenamento de Blobs nos Azure Databricks. 4/6

Clique nesta pasta recém-criada. Você verá os seguintes arquivos:

  • _started_… -> Indica quando o processo foi iniciado

  • _committed_… -> Mostra quantos arquivos foram criados

  • _SUCCESS -> Informa o status do processamento

Além disso, você encontrará vários arquivos .csv divididos. O mecanismo Spark divide os dados em partições para um processamento de dados rápido e eficaz. Clique em um dos arquivos e você pode editá-lo, como mostrado abaixo.

A gravação de dados organizados no Armazenamento de Blobs nos Azure Databricks. 5/6

A captura de tela abaixo mostra uma amostra do mesmo arquivo baixado e aberto como um arquivo .csv.

A gravação de dados organizados no Armazenamento de Blobs nos Azure Databricks. 6/6

  • Nota: Os Databricks do Azure com a estrutura rápida de computação em cluster do Apache Spark foi criada para funcionar com conjuntos de dados extremamente grandes e garante desempenho aprimorado, no entanto, para uma demonstração, usamos um .csv com apenas 1000 registros. Em cenários práticos, os Databricks do Azure processam petabytes de dados em alguns segundos.

Conclusão

Nesta postagem, aprendemos a acessar o Blob Storage nos Azure Databricks e também demonstramos como gravar dados organizados novamente em um contêiner do Azure Blob Storage usando os Azure Databricks. Ao longo do caminho, também fizemos algumas codificações práticas no notebook Scala no cluster Spark.

Gauri Mahajan
Últimas mensagens de Gauri Mahajan (ver todos)

Noções básicas sobre mascaramento dinâmico de dados no SQL Server

Default Masking


Neste artigo, vou explicar o recurso Mascaramento Dinâmico de Dados no SQL Server. Como é chamado pelo nome,
    O Mascaramento Dinâmico de Dados é um dos recursos de segurança introduzidos no SQL Server 2016. Em um ambiente cada vez maior
    Na era digital, a segurança dos dados se tornou uma das transações mais importantes e caras. Todos esperam que seus dados sejam protegidos como ativos próprios e gostam de tratá-los com a maior eficiência possível.

O Mascaramento Dinâmico de Dados protege os dados subjacentes no SQL Server, aplicando a função de mascaramento dinamicamente, para que os usuários finais não consigam ver os dados reais, mas sim uma versão mascarada dos dados. Um exemplo desse caso de uso pode ser quando um representante do centro de contato é encarregado de ajudar um cliente do banco com suas informações financeiras; nesses casos, apenas uma versão mascarada do número da conta ou do número do cartão de crédito fica visível para o representante.

Exemplo de mascaramento de dados dinâmicos

Figura 1 – Exemplo de mascaramento de dados

Se você observar a ilustração acima, poderá ver, à esquerda, os números reais da conta e, à direita, os números da conta, mas esses números serão substituídos por um caractere específico.
    que neste caso é “X”. Isso é feito essencialmente para fornecer uma maneira segura de representar qualquer informação confidencial. Se essa representação mascarada for fornecida, não é uma tarefa fácil compor o número real da conta a partir dela.

Algumas semanas atrás, eu estava trabalhando com um de meus clientes e tínhamos alguns requisitos em que eu precisava acessar os dados do cliente. Como a empresa era governada pelas leis do GDPR, solicitei à equipe que mascara as informações confidenciais e depois transfira os dados para que possamos continuar com o trabalho de desenvolvimento.

Um ponto importante a ser observado aqui é que o Mascaramento Dinâmico de Dados é apenas um recurso de segurança que permite mascarar o
    apenas camada do banco de dados. No entanto, a documentação oficial sugere que é apenas segurança primária e deve
    ser usado com outros recursos, como criptografia de dados transparente (TDE) ou segurança no nível de linha (RLS).

Métodos de mascaramento no SQL Server

O SQL Server já vem com algumas funções de máscara predefinidas que podemos usar ao definir o mascaramento dinâmico de dados no
    Servidor SQL. Estes são os seguintes:

Máscara de dados padrão

Este é um tipo de mascaramento de dados aplicado automaticamente pelo mecanismo de banco de dados com base no tipo de dados da coluna.
    Por exemplo, se o tipo de dados de uma coluna for uma string (texto, ntext, char, nchar, varchar, nvarchar), esse será o mascaramento padrão que será aplicado. O mesmo vale para colunas que são do tipo de dados numéricos e outras colunas com o tipo de dados do tipo data. A máscara padrão apenas substitui alguns caracteres por “XXXX” no valor dos dados. O número de “X” depende do comprimento dos dados na coluna.

Máscara de dados padrão

Figura 2 – Mascaramento de dados padrão

Máscara de dados parciais

O Mascaramento de Dados Parciais também é como o que entendemos acima, exceto que esta função aceita um parâmetro do usuário para definir quantos caracteres das colunas devem ser mascarados. Por exemplo, se você ver a figura abaixo, o
Máscara Parcial A coluna tem poucos caracteres visíveis no início e no final, mas os caracteres no meio foram mascarados.

Máscara de dados parciais

Figura 3 – Mascaramento parcial de dados

Mascaramento de dados de email

Esta função é usada especificamente para mascarar se a coluna contiver um endereço de email. Não é usado para mascarar campos de caracteres ou numéricos. A coluna mascarada retorna o primeiro caractere do email como está e mascara os caracteres restantes do campo. Você pode ver uma ilustração na figura abaixo.

Máscara de email

Figura 4 – Mascaramento de email

Implementando Mascaramento Dinâmico de Dados

Agora que temos algumas informações básicas sobre o mascaramento de dados dinâmicos e as várias funções para aplicar o mascaramento, vamos aprender como podemos implementar o mesmo no SQL Server. Para os fins deste artigo, estou usando SQL
    Server 2016, mas esse recurso também está disponível e pode ser usado em qualquer versão superior ao SQL Server 2016, incluindo
    SQL Server 2017 e SQL Server 2019.

Vamos primeiro configurar nosso conjunto de dados com o qual executaremos todas as operações a partir de agora. Você pode executar o script abaixo e configurar o conjunto de dados no seu local.

Agora que os dados estão disponíveis; você pode ver que qualquer pessoa pode acessar esses dados e visualizar informações confidenciais.

Dados da tabela

Figura 5 – Dados da tabela

Vamos agora criar um usuário que terá acesso apenas a esta tabela. Você pode executar o script abaixo para criar o
    usuário e conceda permissões de seleção a ele.

Vamos agora aplicar a função de máscara padrão nesta tabela. Para isso, vamos mascarar o Nome
coluna com a operação de mascaramento padrão, conforme discutido na seção acima.

Agora, vamos tentar ver o que o novo usuário pode ver ao selecionar registros nesta tabela.

Mascaramento padrão

Figura 6 – Mascaramento padrão

Como você pode ver na figura acima, o usuário vê uma versão mascarada do Nome coluna. Este usuário não pode ver os dados originais subjacentes, pois foram mascarados usando a função padrão.

Vamos agora implementar a função de mascaramento parcial no telefone coluna.

Máscara Parcial

Figura 7 – Mascaramento parcial

Se você observar a figura acima, aplicamos uma função de máscara parcial na coluna Telefone. Essa função parcial é definida para mascarar apenas os caracteres da coluna, conforme mencionado na fórmula. Por exemplo, mencionamos para começar a mascarar após 2 dígitos, mascarar os próximos cinco dígitos com o caractere “X”E mantenha os três últimos dígitos como estão.

Finalmente, vamos mascarar a coluna de email também, mas usando a função de email. Você pode clicar no script abaixo.

Máscara de email

Figura 8 – Mascaramento de email

Até agora, exploramos como implementar as várias funções do Mascaramento Dinâmico de Dados no SQL Server e vimos que os dados estão mascarados e apenas uma parte dos dados reais está visível para o usuário. Isso é útil para fornecer uma camada de segurança dinamicamente enquanto os dados subjacentes permanecem os mesmos. Como já explicado anteriormente, esse recurso não criptografa totalmente uma coluna, mas apenas mascara os caracteres dessa coluna.

Se você selecionar dados da mesma tabela que o usuário original, ainda poderá ver os dados reais e nenhum dado mascarado.

Nenhum dado mascarado

Figura 9 – Sem dados mascarados

Verificar colunas com mascaramento dinâmico de dados

Às vezes, é possível que você já esteja trabalhando em um banco de dados, mas não saiba que os dados já estão mascarados ou não. Nesses casos, podemos aproveitar uma das visualizações do SQL fornecidas pelo SQL Server para ter uma visão geral de quais colunas, o mascaramento dinâmico de dados foi aplicado. Para selecionar dados dessa exibição, você pode executar o seguinte script.

Verificar colunas mascaradas

Figura 10 – Verificar colunas mascaradas

Conclusão

Neste artigo, vimos do que se trata o mascaramento dinâmico de dados no SQL Server. Também expliquei como esse recurso funciona no SQL Server e as várias funções que podem ser usadas para mascarar uma coluna em uma tabela. Finalmente, demonstrei com exemplos ao vivo em que modifiquei as colunas subjacentes uma de cada vez, aplicando as diferentes funções – padrão, parcial e email e obtendo a máscara. É um recurso bastante útil para restringir o acesso dos usuários a dados confidenciais, no entanto, ele não criptografa nenhum dado.

Aveek Das
Últimas mensagens de Aveek Das (ver todos)

Visual de rolagem para movimentos de preços de ações no Power BI Desktop

Title in Power BI Desktop


No artigo, gráfico de velas para análise de dados de ações no Power BI Desktop, exploramos o Power BI Desktop para analisar os preços das ações. Se você acompanha o mercado de ações, pode ter notado um código (semelhante à imagem a seguir) mostrando os preços e as alterações das ações desde o último preço de fechamento. Ele mostra um indicador para cima e para baixo, dependendo da mudança positiva ou negativa no preço das ações.

Resultado de imagem para imagem do ticker de ações

Recentemente, seguindo os preços das ações, pensei em criar um ticket de ações semelhante usando o Power BI. Vamos explorar a solução neste artigo.

Dados de amostra – Carregar dados de um arquivo PDF

Neste artigo, usarei os dados de amostra em um arquivo PDF. Esses dados são apenas para fins de referência e não contêm o valor real dos preços das ações.

Dados de amostra

A primeira etapa para criar um relatório é importar esses dados. Clique em Obter dados -> PDF.

Você pode consultar o artigo Importando dados de um arquivo PDF no Power BI Desktop para aprender como importar dados de um arquivo PDF. Se você usar a versão mais recente do Power BI Desktop, não precisará ativar o recurso nos recursos de visualização. A importação de dados PDF está em disponibilidade geral agora.

Obter dados

Clique em Conectar, navegue até o diretório e forneça o caminho do arquivo PDF. Ele se conecta a um arquivo PDF e busca a tabela de ações, como mostrado abaixo. Você pode obter várias tabelas, dependendo dos dados do arquivo PDF. Você deve visualizá-lo primeiro e carregar os dados apropriados.

Carregar dados

Exigimos algumas alterações nos dados, então clique em Transformar dados. Ele abre o Power Query Editor para personalizar os dados.

Transformar dados.

Exigimos remover o sufixo .NS dos dados na coluna de símbolo. Para esse requisito, clique com o botão direito do mouse na coluna Symbol e escolha Dividir coluna -> por delimiter.

Visual de rolagem para movimentos de preços de ações no Power BI Desktop 1 por delimitador.”/>

Especifique a condição de divisão na janela delimitadora e clique em OK. Podemos dividir os símbolos usando o símbolo de ponto (.). Aqui temos apenas uma ocorrência para o caractere de ponto; portanto, não importa se selecionamos o delimitador mais à esquerda ou o mais delimitador à direita.

Especifique condições

Ele divide os dados e cria uma nova coluna para o texto cuspido, conforme mostrado abaixo.

Exibir dados divididos

Remova a coluna indesejada (neste caso, Symbol.2) e renomeie a coluna Symbol.1 para Symbol

Remova a coluna indesejada

Salve as alterações e temos dados prontos para visualização.

Criar um visualizador de cotações de ações no Power BI

Precisamos importar um Scroller visual personalizado para isso. Clique em Importar do MarketPlace, como mostrado abaixo. Pode ser necessário fazer login a partir de uma conta comercial, caso você ainda não esteja conectado.

Visualizador de ações

Aqui, procure o visual do Scroller e clique no ícone Adicionar para adicioná-lo ao painel de visualizações.

Pesquisar visual

Uma vez adicionado, você pode ver o Scroller ícone na parte inferior do Visualizações painel.

Ícone de scroller

Clique no ícone do Scroller e ajuste o tamanho dele.

Clique no scroller

Precisamos definir valores para as seguintes colunas para este visual.

  • Categoria: É a categoria que queremos exibir no visual. Para meus dados, é o símbolo de ações
  • Medida absoluta: É o valor absoluto que desejamos exibir. É o preço de fechamento das ações
  • Medida do desvio: Qualquer alteração no preço da ação (positiva ou negativa) é o desvio da medida do preço final (fechado) (Valor absoluto da medida)

Vamos arrastar o símbolo da coluna no campo Categoria e Último preço na coluna Medida absoluta, como mostrado abaixo.

Exibir o visual do Scroller na área de trabalho do Power BI

Ele mostra o símbolo das ações e seus preços no registro de ações. Atualmente, ele não mostra códigos e indicadores de cores (símbolo para diminuir ou diminuir o preço).

Agora, arraste a coluna Alterar para o desvio da medida e ela começará a mostrar o indicador dos preços das ações.

  • Indicador verde para cima: caso os preços das ações subam em relação ao preço fechado

  • Indicador vermelho para baixo: caso os preços das ações diminuam em relação ao preço fechado

Indicador de visualização

Uma vez que movemos o cursor sobre o rolo, ele para de rolar. É útil parar o scroller em um estoque específico. Assim que removermos o cursor, ele começará a rolar novamente.

Indicador com alteração de preço

Formatação no visual Scroller do Power BI Desktop

Temos várias opções de formatação disponíveis no registro de ações do Power BI. Clique no visual e navegue até a seção Formato.

Formatação no registro de ações

Vejamos algumas opções de formatação úteis:

Fonte de tamanho automático

Por padrão, essa propriedade está desativada. Se alterarmos o tamanho visual do scroller, ele não mudará o tamanho da fonte. Vamos ligá-lo e alterar o tamanho da janela. No gif a seguir, podemos ver que, assim que alteramos o tamanho visual, ele muda automaticamente o tamanho da fonte.

Propriedade de fonte de tamanho automático

Tamanho da fonte

Podemos não ativar a propriedade de tamanho automático para o texto do cotador de ações e fornecer um tamanho de fonte estático para melhor visualização. Nesse caso, podemos especificar o tamanho da fonte e isso muda os tamanhos das fontes. Aqui, se mudarmos também o tamanho da janela visual, ele não mudará o tamanho da fonte.

Definir tamanho da fonte

Indicador de status

Se não quisermos o indicador de status, podemos desativá-lo. Por padrão, está ativado.

Coloração do indicador de status

Como mostrado anteriormente, um indicador mostra as cores verde e vermelho com base no movimento do preço das ações. Se não quisermos código de cores do indicador, podemos desativar essa propriedade. Podemos ver esse comportamento de configuração na imagem a seguir.

Propriedade do indicador de status

Coloração do texto de status

Por padrão, o visualizador de rolagem no Power BI Desktop mostra a cor do estoque em fonte branca, independentemente do movimento do preço das ações. Depois que ligamos Coloração do texto de status, altera a fonte dos estoques nas cores verde ou vermelho, conforme o movimento do preço das ações.

Coloração do texto de status

Velocidade de rolamento

Também podemos alterar a velocidade de rolagem do texto. Por padrão, ele tem uma velocidade de rolagem de 1,2. Alterar a velocidade de rolagem aumenta ou diminui a velocidade de rolagem do texto. Na imagem a seguir, podemos ver diferentes velocidades de rolagem.

Velocidade de rolamento

Cor de fundo

Como mostrado acima, o scroller tem um fundo preto. Embora funcione na maioria dos casos, ainda podemos configurá-lo conforme nossos requisitos. Nesta imagem, vemos algumas cores de fundo. A qualquer momento, podemos reverter para uma configuração padrão usando a opção reverter para o padrão mostrada aqui.

Cor de fundo

Intervalo de atualização

Suponha que estamos fazendo um feed ao vivo dos preços das ações de uma fonte de dados da web. Nesse caso, podemos atualizar os preços das ações em intervalos regulares. Podemos especificar o intervalo de atualização usando esta configuração.

Intervalo de atualização

Texto personalizado

Podemos especificar o texto na caixa Texto personalizado. Depois de especificar um texto, ele substitui o conjunto de dados que desejamos visualizar, por exemplo, cotações da bolsa. Ele adiciona um uso adicional do cotador de ações que você pode usá-lo para exibir algum texto de rolagem no relatório do Power BI. Você pode destacar mensagens importantes para os usuários, como indisponibilidade de relatórios ou tempos de atualização. Aqui, adicionei um texto para agradecer ao SQLShack e aos membros da comunidade pelo meu prêmio de Autor do ano.

Texto personalizado no visual do scroller

Título

Por padrão, o scroller adiciona um título conforme as colunas selecionadas no conjunto de dados. Certamente, não queremos o título padrão no relatório. Podemos usar a seção de título na área de formato para ativar / desativar o título, alterar a fonte do título, cor da fonte, tamanho da fonte, alinhamento.

Título no Power BI Desktop

Conclusão

Neste artigo, exploramos o visual do scroller no desktop do Power BI para criar um cotador de ações junto com um indicador de alteração de preço. Da mesma forma, também podemos usá-lo para rolagem de texto. Ele fornece várias opções de formatação e personalização para torná-lo adequado conforme sua necessidade.

Rajendra Gupta
Últimas mensagens de Rajendra Gupta (ver todos)

Criando pacotes SSIS programaticamente usando EzAPI

Class hierarchy for the data flow engine in EzApi


No artigo publicado anteriormente, Alternativas Biml: Criando pacotes SSIS programaticamente usando o ManagedDTS, falamos sobre a criação de pacotes SSIS usando o modelo de objeto gerenciado do mecanismo SSIS (ManagedDTS). Neste artigo, ilustraremos outra alternativa Biml, que é a biblioteca de classes EzApi, e faremos uma comparação entre as duas tecnologias.

O que é a biblioteca de classes EzAPI?

Como falamos anteriormente, a Microsoft fornece um conjunto de assemblies que permite aos usuários criar, gerenciar e executar programaticamente pacotes SSIS. A principal fraqueza do uso desses conjuntos é que eles são muito complexos e difíceis de entender. Por esse motivo, a equipe do Microsoft SSIS desenvolveu uma biblioteca .Net Class chamada EzApi que facilita a automação do desenvolvimento de pacotes SSIS. Essa biblioteca de classes é desenvolvida usando C # e foi usada internamente pela equipe por um tempo. Posteriormente, foi publicado no CodePlex no projeto de amostras da comunidade do Integration Services e, posteriormente, foi migrado para o Git-Hub após o encerramento do site do Code Plex, mas esse projeto não é aprimorado por um tempo.

Após o lançamento do SQL Server 2016, Pedros Morais (desenvolvedor Full Stack) anunciou o EzApi2016, uma bifurcação do projeto original para adaptar esta biblioteca à nova versão do SQL Server. E mais tarde, esta biblioteca está disponível no NuGet e é aprimorada periodicamente. Mais informações sobre a melhoria podem ser encontradas no site da Pedro Morais.

Essa biblioteca de classes pode ser considerada como uma camada intermediária entre o aplicativo e o modelo de objeto gerenciado do SSIS. Cada objeto nesta biblioteca é mapeado para o objeto COM relacionado no SSIS. Você pode verificar a hierarquia de classes dos mecanismos de tempo de execução e fluxo de dados nas seguintes imagens (Referência: EzAPI – API de criação de pacote alternativa)

Hierarquia de classes para o mecanismo de tempo de execução no EzApi

Figura 1 – Hierarquia de classes para o mecanismo de tempo de execução

Hierarquia de classes para o mecanismo de fluxo de dados no EzApi

Figura 2 – Hierarquia de classes para o mecanismo de fluxo de dados

Conforme mostrado na hierarquia de classes do mecanismo de tempo de execução, a entidade base é o executável, que pode ser um contêiner ou uma tarefa. E no mecanismo de fluxo de dados, a entidade base é um componente que pode ser um adaptador (origem ou destino – pois eles adaptam o SSIS a uma fonte externa) ou uma transformação.

A maneira mais fácil de usar essa biblioteca de classes é abrir o console do gerenciador de pacotes NuGet no Visual studio (Ferramentas> Gerenciador de Pacotes NuGet> Console do Gerenciador de Pacotes).

Console do Openning Package Manager

Figura 3 – Abrir o console do gerenciador de pacotes NuGet

Em seguida, você deve usar o seguinte comando (0.8.93 é a versão mais recente no momento):

Saída do console do gerenciador de pacotes

Figura 4 – Captura de tela da saída do console do gerenciador de pacotes

Agora, a biblioteca de classes é adicionada como referência do projeto:

Mostrando a biblioteca de classes EzApi na referência do projeto

Figura 5 – Biblioteca de classes adicionada como referência

Se você estiver trabalhando offline, basta fazer o download e criar o projeto localmente e adicionar a biblioteca de classes gerada como referência no seu projeto.

Construindo pacotes usando o EzApi

Antes de começar, observe que pode ser necessário adicionar uma referência para os assemblies de modelo de objeto gerenciado do SSIS ao projeto, pois isso é exigido por alguns dos métodos da biblioteca de classes.

Criando um novo pacote

Primeiro de tudo, você deve importar o espaço para nome Microsoft.SqlServer.SSIS.EzAPI na classe atual:

Para criar um novo pacote e salvá-lo em um caminho local, você pode usar o seguinte código:

Carregando pacote do arquivo existente

Para carregar um pacote de um arquivo dtsx existente, você pode usar o seguinte código:

Adicionando gerenciadores de conexões

Para adicionar um gerenciador de conexões, você deve usar o EzConnectionManager ou a classe relevante do gerenciador de conexões da seguinte maneira:

Adicionando tarefas

Para adicionar uma tarefa a um contêiner (pacote ou contêiner), você deve usar a classe relacionada à tarefa e especificar o contêiner pai na inicialização da classe. Por exemplo:

Adicionando tarefas de fluxo de dados

Usando o Ezapi, adicionar tarefas é mais fácil do que o modelo de objeto gerenciado do SSIS. O código a seguir é usado para criar um pacote, adicionando um gerenciador de conexões OLE DB, adicionando uma tarefa de fluxo de dados com uma origem e destino OLE DB, a fim de transferir dados entre [Person].[Person] e [Person].[Person_temp] tabelas:

Executando pacotes

Para executar um pacote, você pode simplesmente usar o método Execute () da seguinte maneira:

Modelos de pacote

Existem alguns pacotes de modelos adicionados nesta biblioteca de classes. Como exemplo:

  • EzDataFlowPackage: um pacote que contém uma tarefa de fluxo de dados
  • EzForLoopDFPackage: um pacote que contém um loop for com uma tarefa de fluxo de dados
  • EzForLoopPackage: um pacote que contém um contêiner for loop

Esses modelos diminuem o tempo e as linhas de códigos necessárias para desenvolver pacotes.

Recursos online

O EzApi não é muito popular, mas há algum artigo on-line que você pode consultar para saber mais:

Comparando com Biml

Simplicidade

Após criar o pacote, nós o converteremos em um script Biml, conforme explicamos no artigo Convertendo pacotes SSIS em scripts Biml

Como você pode ver, o script Biml é um pouco simples que o código C # que escrevemos anteriormente. Podemos dizer que as duas tecnologias utilizadas facilitam muito mais a automação do pacote SSIS do que os assemblies tradicionais fornecidos pela Microsoft. E isso depende do histórico de programação do usuário, pois os desenvolvedores se familiarizarão mais com o EzAPI, enquanto outros funcionários ou analistas irão para o Biml.

Contexto

Como mencionamos no artigo anterior, se você precisar automatizar a criação e o gerenciamento de pacotes em um aplicativo, não poderá usar o Biml. Em outros casos, você pode escolher entre as duas tecnologias.

Tratamento de erros no desenvolvimento

O EzAPI tem a mesma limitação que o ManagedDTS, pois não mostra uma mensagem de erro clara se encontrada durante a criação do pacote:

Exceção sem sentido é lançada ao criar o pacote programaticamente usando o EzApi

Figura 6 – Exceção sem sentido lançada ao criar o pacote programaticamente

Recursos online

Mesmo que o Biml não tenha muitos recursos on-line, eles são muito mais do que o relacionado ao EzAPI, pois você pode não encontrar mais artigos do que os mencionados anteriormente (mesmo esses artigos levam muito tempo para serem reconhecidos).

Conclusão

Neste artigo, ilustramos outra alternativa do Biml chamada EzAPI, falamos brevemente sobre essa biblioteca e por que ela foi desenvolvida. Depois, explicamos como usá-la para criar e gerenciar pacotes SSIS. Finalmente, fizemos uma comparação entre as duas tecnologias.

Índice

Hadi Fadlallah
Últimas mensagens de Hadi Fadlallah (ver todos)

Aprenda a escrever consultas SQL básicas

How to execute a query in SQL Fiddle


Essencialmente, a linguagem SQL nos permite recuperar e manipular dados nas tabelas de dados. Neste artigo, entenderemos e obteremos a capacidade de escrever consultas SQL fundamentais. Inicialmente, examinaremos as principais noções que precisamos conhecer para escrever consultas no banco de dados.

O que é o T-SQL?

SQL é a abreviação das palavras da Structured Query Language e é usada para consultar os bancos de dados. Transact-SQL
    A linguagem (T-SQL) é uma implementação estendida do SQL para o Microsoft SQL Server. Neste artigo, usaremos os padrões T-SQL nos exemplos.

O que é um banco de dados relacional?

De maneira mais simples, podemos definir o banco de dados relacional como a estrutura lógica na qual são mantidas as tabelas de dados que podem
    se relacionam.

O que é uma tabela de dados?

Uma tabela é um objeto de banco de dados que nos permite manter dados através de colunas e linhas. Podemos dizer que as tabelas de dados são os principais objetos dos bancos de dados porque eles estão mantendo os dados nos bancos de dados relacionais.

Suponha que tenhamos uma tabela que contém os dados detalhados dos alunos da turma de história. É formado no seguinte
    colunas.

Nome: Nome do aluno

Sobrenome: Sobrenome do aluno

Lição: Lição optada

Era: Idade do aluno

PassMark: Marca de passagem

Ilustração de dados de tabela do aluno

Usaremos esta tabela em nossas demonstrações neste artigo. O nome desta tabela de dados é Aluna.

Nossa primeira consulta: instrução SELECT

o SELECT A instrução pode ser descrita como o ponto inicial ou zero das consultas SQL. o
SELECT A instrução é usada para recuperar dados das tabelas de dados. No SELECT
sintaxe da instrução, em primeiro lugar, especificamos os nomes das colunas e os separamos por vírgula se usarmos uma única coluna
    não use vírgula nas instruções SELECT. Na segunda etapa, escrevemos o A PARTIR DE cláusula e como
    por último, especificamos o nome da tabela. Quando consideramos o exemplo abaixo, ele recupera dados de Nome
e Sobrenome colunas, o SELECT A sintaxe da instrução será a seguinte:

Consultas SQL básicas: instrução SELECT

Se quisermos recuperar dados apenas do Nome coluna, o SELECT sintaxe da instrução
    será como abaixo:

Consultas SQL básicas: instrução SELECT para coluna única

Gorjeta: Podemos facilmente experimentar todos esses exemplos neste artigo no SQL Fiddle sobre isso
    ligação. Depois de navegar para o
    No link, precisamos limpar o painel de consulta e executar as consultas de amostra.

Como executar uma consulta no SQL Fiddle

O asterisco (*) define todas as colunas da tabela. Se considerarmos o exemplo abaixo, o
SELECT A instrução retorna todas as colunas do Aluna tabela.

Usando o sinal de asterisco (*) na instrução SELECT

  • Gorjeta:
  • Nosso principal objetivo deve ser obter resultados das consultas SQL o mais rápido possível, com o mínimo de recursos
        consumo e tempo mínimo de execução. Quanto possível, precisamos evitar o uso do sinal de asterisco (*) no
    SELECT afirmações. Esse tipo de uso faz com que consuma mais custos de IO, CPU e rede. Como um resultado,
        se não precisarmos de todas as colunas da tabela em nossas consultas, podemos abandonar o sinal de asterisco e usar apenas o
        colunas necessárias

Filtrando os Dados: Cláusula WHERE

ONDE A cláusula é usada para filtrar os dados de acordo com as condições especificadas. Depois de
ONDE , precisamos definir a condição de filtragem. O exemplo a seguir recupera os alunos
    cuja idade é maior e igual a 20.

Consultas SQL básicas: cláusula WHERE

GOSTAR operator é um operador lógico que fornece para aplicar um padrão de filtragem especial a
ONDE condição nas consultas SQL. Sinal de porcentagem (%) é o principal curinga a ser usado como
    uma conjunção com o GOSTAR operador. Através da consulta a seguir, recuperaremos os alunos
    cujos nomes começam com J personagem.

Uso do operador LIKE em uma cláusula WHERE

DENTRO operador nos permite aplicar vários filtros de valor a ONDE cláusula. o
    a consulta a seguir busca os dados dos alunos que fizeram as lições de história romana e europeia.

Uso do operador IN em uma cláusula WHERE

o ENTRE O operador filtra os dados que se enquadram no valor inicial e final definido. o
    a consulta a seguir retorna dados para os alunos cujas notas são iguais e maiores que 40 e menores e iguais a
    60

ENTRE o uso do operador em uma cláusula WHERE

Classificando os dados: Instrução ORDER BY

ORDENAR POR A instrução nos ajuda a classificar os dados de acordo com a coluna especificada. O conjunto de resultados de
    os dados podem ser classificados em ordem crescente ou decrescente. ASC palavra-chave classifica os dados em ordem crescente
    ordem e o DESC A palavra-chave classifica os dados em ordem decrescente. A consulta a seguir classifica o
    dados dos alunos em ordem decrescente, de acordo com as expressões da coluna PassMark.

Consultas SQL básicas: instrução ORDER BY

Por padrão ORDENAR POR A instrução classifica os dados em ordem crescente. O exemplo a seguir demonstra a
    uso padrão do ORDENAR POR declaração.

Classificando os dados em ordem crescente com a ajuda da palavra-chave ASC.

Eliminando os dados duplicados: cláusula DISTINCT

o DISTINCT é usada para eliminar dados duplicados das colunas especificadas para que o resultado
    O conjunto é preenchido apenas com os valores distintos (diferentes). No exemplo a seguir, recuperaremos
Lição dados da coluna, no entanto, ao fazer isso, recuperaremos apenas valores distintos com a ajuda de
    a DISTINCT cláusula

Consultas SQL básicas: cláusula DISTINCT

Como podemos ver, o DISTINCT A cláusula removeu os vários valores e esses valores foram adicionados ao
    conjunto de resultados apenas uma vez.

Questionário

Nesta seção, podemos testar nossos aprendizados.

Questão 1:

Escreva uma consulta que mostre o nome e o sobrenome do aluno com idades entre 22 e 24.

Responda :

Questão 2:

Escreva uma consulta que mostre os nomes e idades dos alunos na ordem decrescente que faz as lições de história romana e antiga.

Responda :

Conclusão

Neste artigo, aprendemos como podemos escrever as consultas SQL básicas, além de demonstrarmos o uso das consultas com exemplos simples.

Esat Erkec
Últimas mensagens de Esat Erkec (ver todos)