Quinta-feira – 08/11/2012
Mais um dia de PASS Summit, acordamos, café da manhã reforçado, caminhada de 15 minutos até o centro de convenções, mais um café e pronto para as sessões. Vou seguir o mesmo padrão de ontem.
· Keynote
o Esse fez jus a minha opinião sobre keynotes, só deveria haver 1 por evento, passar por todos os destaques rapidamente, ganhar os aplausos e depois partir para as sessões que vão detalhar o que foi mostrado.
o Não gostei do keynote e parece que o feedback em geral não foi muito positivo, então nada a acrescentar.
· AD-501-S: Query Tuning Mastery: The Art and Science of Manhandling Parallelism – Adam Machanic
o Outro palestrante que sempre assisto e novamente mostrou para que veio, com uma sessão muito bem preparada, ótimas demos e explicações claras, com certeza estará listada entre uma das melhores sessões do PASS neste ano.
o Ele quebrou a apresentação em 3 partes: nivelamento, problemas com paralelismo e o seu APPLY pattern.
o Sabia que usar uma função escalar inibe o uso de paralelismo pelo query optimizer? E que existem mais uma série de coisas que tem esse comportamento?
o Foram discutidos alguns “problemas” ou preconceitos (como ele chama) do query optimizer com alguns operadores, e como usar alguns truques ou formas diferentes de escrever a consulta para resolver o problema.
o Trace flag 8649 é sua amiga quando você quer ver um plano paralelo
o 64 threads é o limite do SQL Server para paralelismo
o Problemas com o cálculo do custo com operações de compute scalar podem acontecer (o QO sempre acha que eles serão baratos).
o Muito cuidado com o desbalanceamento dos registros entre as threads, imagina como seria legar ver 8 threads trabalhando, uma com 10000000 registros e todas as outras com 0 registros? Cuidado x2! Repartition é seu amigo.
o Por fim foi explorado um padrão que o Adam tem usado por anos em seus projetos de BI, onde ele usa o APPLY para gerar planos com nested loop deixando como o lado de dentro (abaixo) do operador uma zona paralela, garantindo na outer table uma boa distribuição dos dados entre as threads. Muito bonito e elegante a solução.
o No fim uma consulta serial que executava em 27 foi otimizada em uma série de passos para levar apenas 10 segundos, no mesmo hardware.
o Pelos comentários já deu para ver que tenho muitas anotações e grandes exemplos, que serão postados em seu blog, então vocês podem brincar também.
· BIA-306-M: How Klout Changed the Landscape of Social Media with Hadoop and BI – Denny Lee e Dave Mariani
o Sempre é bom ver uma sessão que sai da sua zona de conforto, então nada melhor que ouvir sobre Hadoop, pig, hive, node.js, etc.
o A arquitetura de referência utilizada pelo Klout (estudo de caso) utiliza 150 máquinas com hadoop, uma série de outros componentes e um cubo no SSAS 2012 com 4TB, que é acessado pela aplicação.
o Para o Klout estamos falando de vários milhões de registros, com por exemplo, a dimensão de usuários com 450 milhões de registros e 12 milhões de eventos (registros) por dia (o que seria a tabela de fato), com retenção de 90 dias.
o Vou colocar aqui algumas das anotações que eu fiz, então talvez você não consiga tirar nada de útil, pois meu único objetivo é que seja relevante para mim, não para vocês (sorry!).
o Doesn´t throw data out, write and later decide how to access and query it
o Event tracker architecture
§ Tracker API
§ Log process => flume
§ Hadoop warehouse
§ Cube
§ Klout UI (tableau for visualizations)
o Partition by hour in event tracker, elsewhere by hour
o Serializing and de-serializing data from json into other format
o Hive - map/reduce generator
o Forget about using noSQL database for scan, klout use klout_user_id to find related activity (very punctual search)
o Hive ODBC driver
o Best practices and lessons learned
§ Avoid using a traditional DBMS for staging
§ Use SQL server OpenQuery interface for heterogeneous joins
§ Leverage hive UDF to transform complex data types, such as JSON, into rows and columns that T-SQL com understand
§ Manage large dimensions by using Hive view
· A sessão DBA-400-HD: Recovering Lost Data do Robert foi cancelada, então tive que escolher outras sessões.
o Uma pena as duas sessões não acontecerem, estava querendo ver ideias para melhorar nosso treinamentos de Disaster Recovery na Nimbus. Fica para um outra oportunidade.
· CLD-300-M: SQLCAT: SQL Azure Design Patterns and Best Practices
o Foi bom ver nessa sessão o que nós na Nimbus estamos corretos a afirmar que nuvem não é scale up, mas sim scale out. Temos ido com essa abordagem em nossos clientes e o resultado muito bom.
o O lado ruim dessa brincadeira é que é necessário cuidar das questões de escalabilidade horizontal na sua arquitetura e aplicação, talvez não em um futuro próximo onde isso será mais transparente, mas hoje é sua responsabilidade fazer a quebra e a (difícil) consulta horizontal.
o Seguindo a linha da última sessão, alguns comentários sem me preocupar se você vai atender ou não. São eles...
o Scale out architecture
o Azure compute (and other cloud resources) are usually small, even compared to
o SQL DB partition: high state, manual partition (app), partition function
o Horizontal partition
o Hybrid partitioning, SQL, Table storage, Blob storage
o Partitioning
§ Partition key
§ Partition value
§ Partition value to logical partition
§ Logical to physical partition
§ Non cryptographic hash to have collision, not infinite value
o New option in today scenario = database as a container
o Wrong partition in your architecture = no scale and hot spots
o Performance SLA of SQL Databases? This is multi-tenant!
§ Not guaranteed today, future will able to reserve at a higher price
§ Maybe resource not online, you get to it in a 30s time frame
§ Add policy (retry quicky, backoff, fail, etc.)
o Paper: Computing on large-scale distributed systems
o Query fanout (scatter/gather)
· DBA-323-A: SQLCAT: SQL Server 2012 AlwaysOn HA/DR Customer Panel
o Por fim eu fiquei em uma panel session, onde cinco arquitetos (ou título semelhante) de grandes empresas que implementaram o AlwaysOn foram falar rapidamente sobre a arquitetura e alguns cuidados na implementação.
o Interessante ver o tamanho de algumas implantações e a quantidade de redundância, FCI + AG + replicação + hardware replication, live migration, muita coisa bacana. Na sua maioria 0% data loss e 99,999% uptime.
o Foram muitos detalhes e ficou difícil anotar tudo, então depois vou baixar o PPT para revisar cada um dos cenários, mas para quem trabalha em ambientes críticos foi interessante ver como o pessoal pensa em HA/DR.
A noite tivemos a famosa community appreciation party que foi no Experience Music Project (EMP) museum (ainda bem, não queria ir de novo no gameworks). Eu nunca tinha ido lá e foi bem legal, além do live band karaokê que rolou, o museu tem outras partes para visitarmos. A de sci-fi onde vimos muitos ícones do cinema, como armas de heróis, cadeira do capitão Kirk, roupa usada pelo Neo, Superman, MIB, Alien, etc. Na parte musical vimos guitarras, roupas, fotos e um pouco sobre a história da música, bem legal também.
Para aqueles que estão animados para o PASS Summit 2013, já está aberto a compra de ingressos para o próximo ano (http://www.sqlpass.org/summit/2013/), e pagando até dia 04/01/2013 o evento sai por $ 995 (tem um promocode para isso). A data para o evento: 15 a 18 de Outubro, Charlotte. Então é hora de marcar suas férias do próximo ano ou conversar com seu chefe e economizar para pagar o cartão em Fevereiro!
Gastos do dia:
· Refeições (valores aproximados)
o Almoço: fornecido pelo evento.
o Jantar: fornecido pelo evento no community appreciation party
Abraços,