Dezembro de 2018

Volume 33 – Número 12

Pontos de dados – Gerenciar dados em várias fontes com o Azure Data Studio

Por Julie Lerman | Dezembro de 2018

Julie LermanHá quase um ano, apresentei a vocês o novo SQL Operations Studio, um IDE leve e de plataforma cruzada para trabalhar com várias versões do SQL Server (bit.ly/2RlZKuW). O SQL Operations Studio estava em versão prévia naquele momento e já passou por diversas transformações. Ele foi lançado oficialmente na conferência Microsoft Ignite, em setembro, quando foi renomeado para Azure Data Studio. Embora o novo nome não signifique que produtos diferentes do SQL Server do Azure deixarão de ser usados, particularmente, espero que a ideia seja que, no futuro, possamos usar o produto para outros tipos de armazenamento de dados no Azure. Em comparação com a versão que escrevi há cerca de um ano, a principal diferença para esta nova é em relação às extensões que agora estão disponíveis.

Em vez de repetir as informações sobre os recursos que existiam na versão anterior, neste artigo vou fornecer uma visão clara para aqueles que são totalmente novatos no uso do aplicativo; depois vou explorar algumas das extensões que atiçaram meu cérebro de desenvolvedor.

O Azure Data Studio é faturado como um aplicativo complementar do SQL Server Management Studio (SSMS), com foco no fato de ser um modo de baixo impacto para executar consultas. Acredito que haverá um subconjunto de pessoas que usará ambos, com o Azure Data Studio conquistando uma base de usuários de desenvolvedores que nunca usaram o SSMS. Embora certamente existam recursos que serão do interesse dos DBAs, o SSMS sempre será a ferramenta de administração de aprofundamento.

O Azure Data Studio evoluiu a partir da interseção entre o Visual Studio Code (VS Code) de plataforma cruzada e sua extensão mssql — sobre a qual escrevi em minha coluna de junho de 2017 (msdn.com/magazine/mt809115) —, tornando-se seu próprio aplicativo no final. Além disso, assim como o VS Code, o Azure Data Studio é um software livre, e você pode participar da github.com/microsoft/azuredatastudio.

Em bit.ly/2Rl14yl, você pode baixar os instaladores relevantes para Windows, macOS ou Linux. Para se ter uma ideia de como a experiência de instalação é diferente, o arquivo do instalador do aplicativo Windows tem 76 MB, enquanto o do SSMS 17.9 tem 800 MB, e ele foi instalado em meu laptop em menos de dois minutos. Assim como o VS Code, o Azure Data Studio é facilmente configurável por meio de seus arquivos de configuração JSON, além de ser bastante extensível. O Azure Data Studio já conta com diversas extensões, algumas da Microsoft e algumas da comunidade.

Outro recurso importante herdado do VS Code é o terminal interativo, no qual é possível executar comandos de CLIs como PowerShell, Bash e o utilitário de linha de comando sqlcmd de plataforma cruzada. O Azure Data Studio também herda o Explorador de Arquivos do VS Code, o que permite a interação com projetos baseados em pastas contendo arquivos, como o SQL escrito por você ou arquivos de dados baseados em texto. E você pode usar o controle do código-fonte integrado para gerenciar e compartilhar esses projetos.

Não vou falar sobre os recursos do Azure Data Studio sobre os quais escrevi nos artigos anteriores do SQL Operations Studio ou mssql. Neles, é possível ler sobre recursos como snippets internos do SQL, a capacidade de criar seus próprios snippets personalizados e o incrível recurso de gráfico que permite visualizar os resultados da consulta e até mesmo inseri-los como widgets personalizados nos painéis de um servidor ou de um banco de dados.

A experiência de uso do Azure Data Studio é a mesma em qualquer sistema operacional compatível. Vou usar meu MacBook porque ele representa uma divertida mudança de ambiente para mim. À medida que eu for passando por alguns desses recursos, vou pressupor que você já tenha alguma familiaridade com o VS Code ou versões anteriores do SQL Operations Studio.

O Azure Data Studio permite que você se conecte a diversos tipos de SQL Server. Você pode se conectar a um servidor local em seu computador ou sua rede, uma instância localdb do SQL Server para Linux, SQL Server em execução em um contêiner do Docker ou Windows, SQL Azure ou SQL Azure Data Warehouse. Também há suporte para a versão prévia das Instâncias Gerenciadas do Banco de Dados SQL do Azure recém-lançadas.

Vou começar criando uma nova conexão ao SQL Server em minha rede. O novo assistente de conexão fornece um formulário de conexão no qual vou inserir as informações necessárias. Estou usando uma autenticação do SQL e posso solicitar que ela se lembre da minha senha. Depois de me conectar, o Gerenciador de Servidores do Azure Data Studio lista os bancos de dados disponíveis (Figura 1), com nós para Tabelas, Modos de exibição, Programabilidade, Segurança e outros que você já está acostumado a ver caso use o SSMS. Clique duas vezes em uma tabela para exibir ou editar dados e criar scripts, recursos esses que já existiam no SQL Operations Studio. 

Gerenciador de Servidores exibindo um SQL Server com a rede conectada e sua janela de gerenciamento padrão
Figura 1 Gerenciador de Servidores exibindo um SQL Server com a rede conectada e sua janela de gerenciamento padrão

Importações de arquivos simples usando inteligência artificial

A extensão de importação do SQL Server, que é o resultado de um hackathon que a Microsoft realizou no verão passado, está atualmente em versão prévia e já pode importar arquivos CSV e TXT de dados simples. Em algum momento, também será capaz de importar arquivos JSON.

Essa capacidade de importação é um grande feito, sendo controlada pela inteligência artificial (IA) usando uma nova tecnologia da Microsoft Research chamada de Program Synthesis using Examples, ou PROSE (microsoft.github.io/prose). Conforme disse Alan Yu, um gerente de programa do SQL Server, o PROSE “pode detectar automaticamente os tipos de dados, delimitadores, nomes de coluna e a estrutura de um arquivo sem precisar definir a configuração explicitamente”.

Embora recursos de exportação para CSV, JSON ou XLSX não sejam novos (ainda que os ícones estejam mais fluidos), vou começar com uma exportação para mostrar a importação de arquivos simples. Para obter dados para exportar, usei a opção SELECT TOP 1000 do menu de contexto de tabela para selecionar todas as linhas da tabela HumanResources.Employee do banco de dados testado e aprovado do AdventureWorks. A Figura 2 permite que você veja o menu de contexto, juntamente com o painel de consulta, o painel de resultados e o painel de mensagens que resultaram da seleção. A exibição e formatação de todos esses painéis podem ser facilmente configuradas da mesmo forma que no VS Code (bit.ly/2lEaFoc). Na verdade, há mais de 350 personalizações possíveis das configurações e que podem influenciar no comportamento do Azure Data Studio. A seta vermelha da imagem mostra a exportação ao ícone do CSV, que eu usei para criar um arquivo chamado HREmp.csv. As configurações padrão da exportação de arquivos CSV incluem os nomes de coluna na saída. Com essas informações, agora posso mostrar a extensão de importação de arquivo simples que já instalei.

Exibição completa do Azure Data Studio durante a exportação para CSV das linhas selecionadas
Figura 2 Exibição completa do Azure Data Studio durante a exportação para CSV das linhas selecionadas

A extensão adiciona um item de menu “Assistente de importação” ao menu de contexto que surge ao clicar com o botão direito do mouse em um banco de dados no Gerenciador de Servidores. Como no VS Code, todas as funções possuem um comando de teclado (nessa, é Ctrl + I), o qual é acessível a partir da Paleta de comandos (F1).

O recurso de importação importa dados para tabelas novas, não para as existentes. Um formulário permite que você especifique o servidor e o banco de dados (sendo o padrão aquele que você selecionou anteriormente), o arquivo a ser importado e o nome e o esquema da nova tabela. Depois ele exibe uma visualização com sua interpretação das primeiras 50 linhas do arquivo. A extensão faz parecer fácil, mas lembre-se que essa mágica acontece devido ao uso da IA do PROSE, que descrevi anteriormente.

A etapa seguinte à visualização dos dados é uma oportunidade para alterar como os dados são mapeados para colunas. Você pode modificar os nomes de coluna e tipos de dados inferidos, além de definir chaves primárias e a nulidade da coluna. Embora ainda não seja possível realizar ações como remover ou adicionar uma coluna, lembre-se de que a extensão é compilada dentro do repositório GitHub para o aplicativo que eu vinculei anteriormente. A equipe está ansiosa para saber quais formatos de arquivo e recursos relacionados você gostaria de ver. Você pode participar da discussão em bit.ly/2IXv8wd.

Uau, criação de perfil SQL de plataforma cruzada!

Outra extensão que também está em versão prévia no exato momento em que escrevo este artigo é a do SQL Server Profiler. A criação de perfil do banco de dados é uma etapa essencial no desenvolvimento de qualquer aplicativo. Durante décadas, usei intensamente o aplicativo autônomo baseado em Windows do Profiler do SSMS. Ainda assim, continuo incrivelmente desajeitada ao usá-lo quando tento obter as colunas desejadas, aplicar filtros com “cadeias de caracteres mágicas”, etc. Não sei se alguma vez ele foi atualizado. Também aproveito os recursos de registro em log do .NET Core nos meus aplicativos, para ver o SQL enviado ao banco de dados. Na verdade, minha última coluna foi sobre registros em log do EF Core (msdn.com/magazine/mt830355), mas, às vezes, quero muito ter a perspectiva do banco de dados. E se eu não estiver no Windows ou em um computador que tenha o criador de perfil disponível, fico perdida. Portanto, o fato de essa extensão ser parte do aplicativo de plataforma cruzada parece quase mágico para mim.

A extensão do criador de perfil foi escrita usando um recurso de banco de dados do SQL Server chamado de Eventos Estendidos (XEvents). Também há um tipo de XEvents para o SQL Azure. Você pode ler mais sobre os XEvents em bit.ly/2LfWMoj. O Leiame da extensão indica em qual subconjunto de casos de uso o SQL Profiler se concentra:

  • Percorrer consultas de problemas para encontrar a causa do problema.
  • Localizar e diagnosticar consultas de execução lenta.
  • Capturar a série de instruções Transact-SQL que leva a um problema.
  • Monitorar o desempenho do SQL Server para ajustar cargas de trabalho.
  • Correlacionar contadores de desempenho para diagnosticar problemas.

Antes de iniciar uma sessão de criação de perfil, você precisa se conectar a um banco de dados. Em seguida, você pode abrir a extensão do criador de perfil (Alt + P ou Ctrl + Opt + P). Você será solicitado a selecionar um modelo de sessão e fornecer um nome para a sessão. Há três modelos incluídos no Azure Data Studio: Standard_OnPrem, Standard_Azure ou TSQL_OnPrem. Os modelos padrão predefinidos exibem todos os eventos, enquanto o TSQL exibe apenas o TSQL conectado. Esses modelos são definidos nas configurações, especificando quais eventos são retransmitidos e quais filtros são aplicados. Você também pode criar seus próprios modelos de sessão nas configurações.

O criador de perfil será aberto em sua própria janela de editor e iniciará automaticamente. Você pode parar e reiniciar o criador de perfil a qualquer momento usando seus botões ou um atalho de teclado: Alt + S (Windows) ou Ctrl + Opt + S (Mac).

No começo, quando tentei iniciar o criador de perfil, recebi um erro informando que “o usuário não tem permissão para executar esta ação”. Isso ocorre porque o logon do SQL que eu criei tinha permissões limitadas. Lembre-se de que eu sou uma desenvolvedora, não uma DBA. Eu corrigi esse problema concedendo a permissão ALTER TRACE ao meu logon. Depois da criação de perfil do meu banco de dados de rede, eu troquei para a criação de perfil do SQL Server do banco de dados do Linux em execução em um contêiner do Docker no mesmo MacBook em que o Azure Data Studio estava em execução. (Confira meu artigo em msdn.com/magazine/mt784660 para saber mais sobre o SQL Server no Docker.)

Como a Figura 3 mostra, a saída padrão exibirá todos os eventos; e caso tenha usado o criador de perfil do SSMS, você sabe que isso pode ser bastante prolixo. Depois de criar a sessão, você pode ajustar o que é exibido com duas listas suspensas. O primeiro menu suspenso permite que você selecione a partir de suas sessões personalizadas ou de três sessões predefinidas (AlwaysOn_health, system_health e telemetry_xevents) que são integradas ao SQL Server. Você pode encontrar detalhes sobre o que é controlado na sessão system_health, por exemplo, em bit.ly/2xZcFuP.

Exibição padrão mostrando diversos detalhes de todos os eventos de uma consulta
Figura 3 Exibição padrão mostrando diversos detalhes de todos os eventos de uma consulta

Lembre-se de que você não pode alterar uma sessão quando o criador de perfil estiver em execução.

A segunda lista suspensa fornece diferentes exibições dos eventos capturados: Standard, TSQL, Ajuste, TSQL_Locks ou TSQL_Duration. Cada exibição é uma combinação de filtros de eventos e das colunas que são exibidas. Por exemplo, o modo de exibição TSQL exibe apenas EventClass, TextData, SPID e StartTime, conforme mostrado na Figura 4. O modo de exibição de Ajuste mostra essas quatro colunas, além do DatabaseID, DatabaseName, ObjectType e LoginName. Assim como os modelos de sessão, os modelos de exibição também são predefinidos nas configurações para que você possa editar as configurações para criar seus próprios modos de exibição que, em seguida, estarão disponíveis no menu suspenso.

O modo de exibição TSQL mostrando informações mínimas, apenas sobre eventos do SQL
Figura 4 Modo de exibição TSQL mostrando informações mínimas, apenas sobre eventos do SQL

Há muito mais para aprender sobre o uso do criador de perfil, mas como ele ainda está em versão prévia, espero que, quando que você estiver lendo este artigo, haja novos recursos a serem explorados.

Ciência de Dados com a extensão de versão prévia do SQL Server 2019

O SQL Server 2019, que está em versão prévia no momento, tem alguns recursos novos e interessantes relacionados ao Big Data. Sobre isso, há uma extensão do Azure Data Studio para o SQL Server 2019 (também em versão prévia) que permite que você aproveite esses recursos dentro do IDE. Com essa combinação, o Azure Data Studio também se torna uma ferramenta para cientistas de dados. O SQL Server 2019 oferece clusters de dados com clusters Spark HDFS (Sistema de Arquivos Distribuído do Hadoop), e o Azure Data Studio permite a você consultar esses dados (usando o SQL) junto com seus dados relacionais. O SQL Server 2019 também permite que você se conecte a dados externos e virtualize-os, por exemplo, a partir do MongoDB ou Oracle. Uma vez conectado, você também pode consultar esses dados. Com o Azure Data Studio, você pode fazer consultas nas fontes de dados relacional e escalonável, e até mesmo unir esses recursos em suas consultas. O Azure Data Studio também permite a criação e o uso de notebooks do Spark, nos quais você pode encapsular e compartilhar suas consultas e conexões do recurso. Esses recursos de Big Data são novidades para mim, e caso sejam novidade para você também, recomendo assistir primeiro a este vídeo de 5 minutos bit.ly/2zTgkMl, no qual a equipe do SQL Server usa o Azure Data Studio e essa extensão para demonstrar os recursos de Big Data.

Procurar recursos do Azure no Azure Data Studio

O Azure Data Studio e seu antecessor sempre foram capazes de se conectar ao SQL Azure. Mas há um recurso novo para procurar recursos do SQL Azure e se conectar facilmente a eles. Esse recurso começou a ser usado na extensão do SQL Server 2019, mas agora é parte do aplicativo principal. Há um ícone do logotipo do Azure na barra de atividades. No primeiro uso, você será solicitado a fazer logon no Azure e permitir que o Azure Data Studio se conecte. Em seguida, conforme mostrado na Figura 5, esta exibição listará todas as suas contas e, aninhados, todos os SQL Servers do Azure e bancos de dados dentro desses servidores. Depois, bastará selecionar o banco de dados ao qual se conectar e ele preencherá automaticamente o formulário de conexão. Tudo o que você deve precisa fazer é inserir a senha para se conectar ao banco de dados. No meu caso, também tive de habilitar a conexão do meu endereço IP, mas a extensão me mostrou como fazer. Eu não precisei abrir o portal do Azure para classificá-los.

Procurando seus recursos do SQL Azure com a extensão do SQL Server 2019
Figura 5 Procurando seus recursos do SQL Azure com a extensão do SQL Server 2019

Por falar em se conectar ao SQL Azure, quando eu estava trabalhando em um artigo anterior do SQL Operations Studio, incluí uma sugestão no GitHub para a equipe criar uma forma simples de conexão que possibilitasse aos usuários uma maneira de copiar as cadeias de caracteres da conexão do Azure SQL no portal e, de alguma forma, colá-las no Azure Data Studio. Hoje esse é um recurso integrado do Azure Data Studio, e não apenas parte da extensão. E é um recurso muito legal. Se você copiar a cadeia de conexão do portal e depois, já no Azure Data Studio, clicar no ícone de Criar nova conexão (ou fazer isso por meio da paleta de comandos), o formulário de conexão será preenchido automaticamente com todos os detalhes da cadeia de conexão. Quando eu fiz isso, até a senha foi preenchida, mesmo não estando na cadeia de conexão que criei. O Azure Data Studio tinha gravado a senha de quando fiz uma conexão anterior a outro banco de dados SQL do Azure.

Mais extensões

Já destaquei três das extensões de que mais gostei como desenvolvedora. Mas quero ter certeza de que você conheça outras extensões, algumas das quais vão agradar a desenvolvedores e DBAs. O RedGate criou uma extensão de Pesquisa do SQL. A Microsoft criou uma extensão relacionada às ferramentas de monitoramento de atividade de sp_whoisactive de Adam Machanic. Ela também criou extensões para o SQL Server Agent, insights de dados e relatórios de servidor do Warehouse do SQL do Azure, que incluem, por exemplo, espaço de banco de dados e uso de buffer, uso de CPU e contagens de espera.  Há extensões de MVPs para obter mais insights e scripts de mesclagem. E se você é fã de atalhos de teclado, vai gostar da extensão para importar mapas de teclas populares do SSMS ao Azure Data Studio, criada por Kevin Cunnane, da equipe de ferramentas do SQL Server.

Caso esteja interessado em criar extensões, você pode encontrar ajuda na documentação presente em bit.ly/2zTkROR.

Agora o Azure Data Studio está instalado em todos os computadores com os quais trabalho: desktops e laptops, Windows e macOS. Tenho ele até mesmo no desktop com Windows, no qual estão instaladas as versões completas do SQL Server e do SSMS, e descobri que estou usando o Azure Data Studio nesse computador com muito mais frequência que o SSMS devido ao tipo de tarefas que realizo mais comumente.


Julie Lerman é Diretora Regional da Microsoft, MVP da Microsoft, coach e consultora de equipes de software e reside nas colinas de Vermont. Você pode encontrá-la em apresentações sobre acesso de dados ou sobre outros tópicos em grupos de usuários e conferências em todo o mundo. Ela escreve no blog thedatafarm.com/blog e é autora do “Programming Entity Framework”, bem como de uma edição do Code First e do DbContext, todos da O'Reilly Media. Siga-a no Twitter em @julielerman e confira seus cursos da Pluralsight em juliel.me/PS-Videos.

Agradecemos aos seguintes especialistas técnicos da Microsoft pela revisão deste artigo: Alan Yu.
Alan Yu é Gerente de Programas da equipe do Azure Data na Microsoft. Ele trabalha na criação de ferramentas de software livre e de plataforma cruzada para SQL Server e bancos de dados em nuvem, incluindo o Azure Data Studio, ferramentas de linha de comando como o mssql-cli e experiências de portal do administrador de cluster para o SQL Server 2019. Para ficar por dentro dos incríveis trabalhos da sua equipe, siga @AlanYuSQL no Twitter.


Discuta esse artigo no fórum do MSDN Magazine