{"id":880,"date":"2017-11-02T08:18:17","date_gmt":"2017-11-02T15:18:17","guid":{"rendered":"http:\/\/3.209.169.194\/blogs\/erin\/?p=880"},"modified":"2017-11-02T09:48:21","modified_gmt":"2017-11-02T16:48:21","slug":"pass-summit-2017-day-2","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/erin\/pass-summit-2017-day-2\/","title":{"rendered":"PASS Summit 2017: Day 2"},"content":{"rendered":"<p>Day 2 is starting here at PASS Summit in Seattle &#8211; watch this space for updates the next hour and a half!<\/p>\n<p><a href=\"https:\/\/twitter.com\/GFritchey\">Grant Fritchey<\/a> is kicking off day 2!\u00a0 I&#8217;m a big fan of Grant.\u00a0 He talks about the community and how people should take advantage of what&#8217;s available here at Summit.\u00a0 I couldn&#8217;t agree more &#8211; I wouldn&#8217;t be where I am in my career without this conference, nor would I have the friends I do all over the world.\u00a0 Grant hands it over to <a href=\"https:\/\/twitter.com\/denisemc06\">Denise McInerney<\/a>, VP of Marketing, and Denise shares her journey within PASS (she&#8217;s a 6 year Board Member).\u00a0 Denise continues driving the point about the value of this conference and PASS.\u00a0 She then talks about the volunteers for PASS, and announces the winner of the PASSion Award.\u00a0 This year&#8217;s winner is <a href=\"https:\/\/twitter.com\/roberto_mct\">Roberto Fonseca<\/a>.<\/p>\n<p>Denise is talking about the survey feedback from the past couple years, and session evaluations at PASS.\u00a0 *PLEASE* complete these by the end of next week (if not earlier) &#8211; both PASS and the speakers truly value this feedback.\u00a0 If you provide additional feedback there is a Board Q&amp;A tomomrrow at Friday, 2PM. Today is the WIT lunch, and Denise announces that next year&#8217;s Summit is\u00a0 November 6 &#8211; November 9, 2017.\u00a0 Denise introduce <a href=\"https:\/\/twitter.com\/rimmanehme\">Rimma Nehme<\/a>, a Group Product Manager\/Architect for Azure Cosmos DB and Azure HDInsight at Microsoft.\u00a0 Today is going to uncover CosmosDB.\u00a0 It will be technical!\u00a0 Let&#8217;s go!!<\/p>\n<h1>\u00a0Do we need another database?<\/h1>\n<p>This is the wrong question to ask.\u00a0 If you look at the rising data problems and needs, most of the production systems today (particularly the ones designed in the 70s and 80s), the modern calls and needs are addressing these problems.\u00a0 90% of the world&#8217;s data was created in the last 2 years alone.\u00a0 The estimated growth in the next 3-5 years is 50x.\u00a0 Another trend is global, and another is data is big.\u00a0 Not just a few TB, but trends of companies processing hundreds of TB to pedabytes.\u00a0 Every 60 seconds 200 million emails are generated.\u00a0 Rimma is throwing out ridiculous numbers about the amount of data being generated.\u00a0 I can&#8217;t keep up!<\/p>\n<p>Data is also interconnected.\u00a0 What you do in Seattle can be connected to another location in the world.\u00a0 This the butterfly affect.\u00a0 We are experiencing about 125 exabytes of data (that&#8217;s a lot of zeroes).\u00a0 Companies are looking at ways of extracting that data and monetize that information.\u00a0 Another trend is the balance of power continues to shift from structured to unstructured data.\u00a0 About 80% of data originates in unstructured data. Never push the data to computation &#8211; push the computation to the data.<\/p>\n<p>When dealing with distributed, you need to deal with a lot of differences.\u00a0 For example, different architectures.\u00a0 In 2010 an engineer inside Microsoft observed this and identified that we need a different architectures to deal with these fundamental differences in data at scale.\u00a0 This is how Project Florence was born, which is the base of what is now CosmosDB.\u00a0 It was one of the exemplary partnerships between Microsoft Research and the Azure Data team.<\/p>\n<p>At the time they were working to address the problem of the data for large scale applications within Microsoft (e.g. XBox).\u00a0 They tried the &#8220;earthly databases&#8221;, building something on their own, and these options weren&#8217;t working.\u00a0 Hence project Florence to meet the internal needs.\u00a0 A basic set of requirements were laid out:<\/p>\n<ol>\n<li>Turnkey global distribution<\/li>\n<li>Guaranteed low latency at the 99th percentiles, worldwide<\/li>\n<li>Guaranteed HA within region and globally<\/li>\n<li>Guaranteed consistency<\/li>\n<li>Elastically scale throughput and storage, at any time, on demand, and globally<\/li>\n<li>Comprehensive SLAs (availability, latency, throughput, consistency)<\/li>\n<li>Operate at low cost (this is crucial and important! &#8211; first customers were Microsoft departments)<\/li>\n<li>Iterate and query without working about schemas and index management (applications evolve over time and rapidly))<\/li>\n<li>Provide a variety of data model and API choices<\/li>\n<\/ol>\n<p>This manifests into three principals that have evolved<\/p>\n<ol>\n<li>Global distribution from the ground up<\/li>\n<li>fully resource governed stack<\/li>\n<li>Schema-agnostic service<\/li>\n<\/ol>\n<p><em>It is very hard to build any service (particularly with such requirements).<\/em><\/p>\n<p>If it was easy, everyone would do it (via NASA).\u00a0 So this is how CosmosDB was built.\u00a0 This is used internally by Microsoft.\u00a0 It is one of the fastest services in the cloud.\u00a0 It is a ring-0 service, meaning it is available in all regions by default.\u00a0 It is millions of lines of C++ code.\u00a0 It is 7 years in the making, it is truly not a new services.\u00a0 Here is what it looks like (a bit of marketing here).<\/p>\n<p>The foundations of the service for a globally distributed, massively scale-able multi&#8211;model database service are<\/p>\n<ol>\n<li>comprehensive SLA<\/li>\n<li>five well-defined consistency model<\/li>\n<li>guaranted low latency at t the99th percentile<\/li>\n<li>elasticscale out of storage and throughput<\/li>\n<li>and&#8230;<\/li>\n<\/ol>\n<p>Fine grained multi-tenancy.\u00a0 This cannot be an after thought.\u00a0 From left to right, you can take a physical resource like a cluster and dedicate to a single tenant (e.g. customer or database).\u00a0 You can take an entire machine and dedicate.\u00a0 You can go another step and take a machine to homogeneous customers.\u00a0 The final level of granularity is taking that machine and dividing between heterogeneous tenants and providing performance and scalability.<\/p>\n<p>In terms of global distribution, Azure has 42 regions world wife&#8230;36 are available, 6 are still being\u00a0 built out.\u00a0 You can span your CosmosDB across all of those regions.<\/p>\n<p>Within a database account you have a database.\u00a0 Within that you have users and permissions.\u00a0 Within that CosmosDB is a container.\u00a0 A container of data with a particular data model.\u00a0 Below that are other user defined code.\u00a0 The database may span multiple clusters and regions and you can scale it in terms of these containers.\u00a0 It is designed to scale throughput and storage INDEPENDENTLY.\u00a0 How is the system designed by the scene (10K foot view)?\u00a0 Within regions there are data centers, with data centers there are stamps, within that there are fault domains, within that there are containers and within that the replicas.\u00a0 Within the replicas are the data.\u00a0 On the database engine this is where the secret sauce comes in &#8211; bw-indexes, resource manager, log manager, IO manager, etc.\u00a0 On any cluster will see thousands or hundreds of tenants.\u00a0 Need to make sure that none of the tenants are noisy.<\/p>\n<p>Another tenant that is import is the concept of partitioning.\u00a0 How does CosmosDB solve this?\u00a0 The tenants create containers of data and behind the scenes these are partitions.\u00a0 The partitions are comprised are 4 replicas.\u00a0 This is consistent and reliable.\u00a0 Each one is a smart construct.\u00a0 Out of those partitions, you can create partition sets.\u00a0 These can then span clusters, federations, data centers, regions.\u00a0 You can overlay topologies to implement solutions that span across multiple regions across the planet.\u00a0 You need to make sure that the applications then work really well (particularly when merge or split partitions set).\u00a0 You have the partition which is a data block and then you can build the partition set of various topological.<\/p>\n<p>What are some of the best practices?<\/p>\n<ol>\n<li>Always want to select a partition key that provides even distribution<\/li>\n<li>user location aware partition key for access locally<\/li>\n<li>Select a partition key that can be a transaction scope<\/li>\n<li>Don&#8217;t want to use the timestamp for write-heavy workloadso<\/li>\n<\/ol>\n<p>The resource model summary : Resources, Resource model, partitioning model<\/p>\n<p>Core capabilities Turnkey global distribution &#8211; this is adding regions with a click.\u00a0 Yu can come to an Azure portal, you can see the map of the entire world and pick the regions where you want your data to be.\u00a0 The data is replicated behind the scenes and then its available for access.\u00a0 You&#8217;re not dealing with VMs, cores.\u00a0 You can add and remove regions at any time and the application does not need to be re-deployed.\u00a0 The connection between application and database is logical.\u00a0 This is enabled by multi-homing capability API.\u00a0 You can connect to physically to the end point.\u00a0 Another capability is that you can associate priorities with each of the regions.\u00a0 If there is an outage or failover in a region, the failover will occur in the order of priority, and that can be changed at any time.\u00a0 Something added for customers is to simulate a regional outage (but don&#8217;t go crazy with this says Rimma!).\u00a0 You can test HA of the entire application stack.<\/p>\n<p>Another capability is being able to provide geo-fencing.\u00a0 If you come from any other part of the world there can be regulations where data has to present in particular regions, so if data needs to stay withing a location for requirements, that capability is required.<\/p>\n<p>How does AlwaysOn work?\u00a0 By virtue of partitioning have multiple locations.\u00a0 One replica goes down, the application will be unaffected.\u00a0 If partition goes down, the application will go t partition in another region.\u00a0 If an entire region goes down, the application will go to another region.\u00a0 The data is always available.<\/p>\n<p>Another area of interest is active writers and active readers in any region.\u00a0 Right now turnkey provided at database level, but looking to push this down to the partition key level (a true Active Active topology).\u00a0 Online backups are available, they are stored in Azure blob storage.\u00a0 The key capability is that it&#8217;s intended for &#8220;oops I deleted my data&#8221;, it&#8221;s&#8217; not for a data center going down (that&#8217;s hwy you have multiple regions).<\/p>\n<p>Second capability is elastic scale out.\u00a0 As data size, scale throughput independently.\u00a0 Could start out with small amount of data and keep adding more and more.\u00a0 Back end will seamlessly scale.\u00a0 Transnational data tends to be small, web and content data is medium sized, and social data\/machine generated data is much larger.\u00a0 As data size grows or throughput grows, scale occurs and this happens seamlessly behind the scenes.\u00a0 This is done with SSDs behind the scenes.<\/p>\n<p>Resource governance is the next component.\u00a0 As operations occur, they occur RUs.\u00a0 You provision RUs that you need (how many transactions\/sec to you need?).\u00a0 All replicas (just a partitioning of data) get a certain budget of RUs.\u00a0 If you exceed, you&#8217;ll get rate limited.\u00a0 At any time can increase provision throughput.\u00a0 Can then support more transactions\/sec.\u00a0 Can also decrease at any time.<\/p>\n<p>RU is a read-based currency partitioned at granularity of a 1 second.\u00a0 It is normalized across DB operations.\u00a0 Cost the operations via machine learning pipelines that cost queries (e.g. scans, lookups, etc.).\u00a0 Have run machine learning on models on telemetry data, and then calibrate the cost model accordingly for RUs.\u00a0 ((DATA DRIVEN).\u00a0 Back to partitioning model: at any time can change throughput and behind the scenes you can specify the throughput (RUs) you want.\u00a0 Behind the scenes the re-partitioning will occur, and each one will get more RUs to provide the throughput asked for.\u00a0 This is where splitting\/merging partitions matters, but it happens behind the scenes and you don&#8217;t have to worry about it.<\/p>\n<p>What about when you add regions?\u00a0 You want to add more RUs so you don&#8221;t starve existing regions.\u00a0 Those RUs are spread across all partitions and regions.\u00a0 Rimma shows how one customer elastically provisioned resources during the holiday season to size up to meet demand, and then size down when no-longer needed.\u00a0 In a 3 day period, Rimma shows a graph of RUs.\u00a0 At the top end there are 3 trillion RUs.\u00a0 (THREE TRILLION IN THREE DAYS PEOPLE)<\/p>\n<p>Various nodes have a various number of RUs serving different workloads, and you can look at the different tenants and partitions in there.\u00a0 Multi-tenancy and global distribution at that level is incredible.<\/p>\n<p>Another tenant: Guaranteed low-latency at 99%.\u00a0 This was a core requirement because time is money.\u00a0 From the business part of view, twice as much revenue lost to slowdowns.\u00a0 So the system is designed.\u00a0 At 99th percentile, less than 10ms for the reads measured at 1KB document (which is =80-90% of workload).\u00a0 At average, will observe lower latency (less than 2 ms for reads and 6ms for writes.\u00a0 How is this accomplished?\u00a0 Reads and writes from local region and SSDs done.\u00a0 The database designed to be write optimized and using latch-free database engine.\u00a0 All data is indexed by default.\u00a0 This is a fundamental difference from relational databases, here we have automatically indexed SSD storage.\u00a0 Customer example: application in California and data in far east.\u00a0 Added another region and then latency dropped.\u00a0 Over black Friday\/cyber Monday latencies less than 10ms for reads and 15ms for writes.\u00a0 Azure Cosmos DB allows you to be the speed of light.\u00a0 If have a database in Chicago and have friends in Paris who want to read your data.\u00a0 If this\u00a0 was a central database they would request to read the data from Paris and getting that data from Chicago to Paris takes 80-100 ms.\u00a0 With CosmosDB you get it in less than 10ms because of those regional locations.<\/p>\n<p>The last here is the consistency model in CosmosDB.\u00a0 How does it go?\u00a0 When you are dealing with any distributed system, whether databases or other sytem, typically you are faced with fundamental trade off of latency, availability, consistency and throughput.\u00a0 If centralized database all requests against primary copy.\u00a0 With global distribution, get geo&#8211;replication get HA and low latency.\u00a0 But what happens if one replica can&#8217;t communicate with others and updates are being made?\u00a0 What kind of consistency guarantees are made?\u00a0 This can be a problem!\u00a0 Do you need to wait for data to be synchronized before you serve it?\u00a0 Do you want strong consistency or eventual consistency?\u00a0 Do you want the red pill or blue pill?\u00a0 With a relational database you get a perfect consistency.\u00a0 They won&#8217;t serve the data until quorum is an agreement. The price there is latency.\u00a0 On the other hand, the whole movement of no consistency guarantees means low latency.\u00a0 But real-world consistency is not a binary choice as just described.<\/p>\n<p>What about something in between?\u00a0 The research literature talks about the wild west of consistency models (not one or the other).\u00a0 A parper recommended is Replicated Data Consistency Explained Through Baseball by Doug terry, a Microsoft Research individual.\u00a0 Uses real-world examples from baseball.\u00a0 Depending on who you are in the game, you might get value out of different consistency models.\u00a0 The engineers asked the question: can we pick out an intermedicate consistency model and is easy to configure, programmable, presents clear trade-offs?\u00a0 Most real-life applications don&#8221;t fall into those two extremes.\u00a0 Bounded-stateless, session (monotonic reads and writes local to geo location), and consistent prefix (when updates applied, the prefixes are guaranteed to be consistent).<\/p>\n<p>How is this accomplished?\u00a0 use TLA+ specifications to specify consistency models.\u00a0 If you don&#8221;t know, check out video by Leslie Lampert who is an important figure in how the system was designed.\u00a0 Leslie was a Touring award winner for Paxis (sp?) algorithm and founding father of what is used in the stack.<\/p>\n<p>Operationalized the five different consistency models.\u00a0 Using telemetry to see then how those models are used.\u00a0 Only 3% use strong consistency, 4% use eventual, and 93% are using the three models in between.\u00a0 Depending on consistency model specified, might need more computational work, which requires RU.\u00a0 Have to make trade offs accordingly, and you can monetize this and decide what&#8217;s&#8217; best.<\/p>\n<p>Comprehensive SLAs&#8230;high availability SLAs are not enough.\u00a0 Microsoft is in the service business, not just the software business.\u00a0 Typically services don&#8217;t give any SLA, or give for HA.\u00a0 When tried to approach this problem, asked &#8220;What are all the things that developers and customers really care about?&#8221;\u00a0 They care about performance, throughput, consistency, availability and latency.\u00a0 SO this is the first service in the market that has published comprehensive SLAs that are backed up by Microsoft financially.\u00a0 Can now see that guaranteed if come in and run workload, will get guaranteed performance, throughput, consistency, availability and latency .\u00a0 Availability tracked at the tenant and partition level in 5 minute granularity.\u00a0\u00a0 Customers can see their run time statistics against their SLA.<\/p>\n<p>Service is also multi-model.\u00a0 Wanted to enable native integration with different data models.\u00a0 Behind scenes just ARS model (atom-record-sequence).\u00a0 All models get translated to ARS model.\u00a0 Very easy for the service to then on-board other data models now and in the future.\u00a0 If want document and graph, do not need two copies of data, it can be handled by the same set of data.\u00a0 This is a powerful combination &#8212; to look at data through different lenses.<\/p>\n<p>Why schema agnostic approach?\u00a0 Modern applications that are built in the cloud are not static.\u00a0 Can start with one schema, add more tables\/new columns&#8230;need a robust approach to handle these scenarios.\u00a0 The object model is schema-free.\u00a0 The data gets stored as-is.\u00a0 How do you query this data?\u00a0 Behind the scenes the data is ARS.\u00a0 At the global scale, dealing with indexes, schema, etc. is a nonstarter.\u00a0 In CosmosDB there is schema agnostic indexing.\u00a0 The indexes are a union of all document trees, and can then consolidate into one and only keep unique values.\u00a0 All of this structure info is then normalized.\u00a0 It is an inverted index which gives optimal write performance.\u00a0 Can identify where documents located and then serve up.\u00a0 The index overhead in practice is pretty small.\u00a0 There is a published paper, Schema-Agnostic Indexing with Azure Cosmos DB, go read it!<\/p>\n<p>The Bw-tree in Azure Cosmos DB is highly concurrent, non-blocking, optimized for SSDs.\u00a0 Avoids random writes.\u00a0 There are three layers, the b-tree, cache and log structured store (see paper).\u00a0 Rhema is going faster now. I&#8217;m not kidding.\u00a0 Bw-tree is implemented as delta updates.\u00a0 There is a mapping table to the updates and updates stored as deltas (sounds like in-memory index structure?).<\/p>\n<p>Rimma shows architecture of Query Processing, there are different semantics but have the same underlying components (compiler, optimizer, etc.).\u00a0 The engine is very flexible and expect that in the future will host other run-times.\u00a0 The multi-API approach allows native support for multiple APIs.\u00a0 If want to store data in cloud but not re-write your app, you can.\u00a0 There are more APIs coming in the future.\u00a0 What does this strategy enable?<\/p>\n<ul>\n<li>No recompilation needed<\/li>\n<li>Better SLAs, lower TCO<\/li>\n<li>leverage the existing OSS tool-chain and ecosystem and development IT expertise<\/li>\n<li>Life and shift from\u00a0on-premises to cloud<\/li>\n<li>No vendor lock-in<\/li>\n<li>Symmetric on-premises and cloud database development<\/li>\n<\/ul>\n<p>All happy databases are alike, each unhappy database is unhappy in its own way (Kyle Kingsbury via Leo Tolstoy).<\/p>\n<p>How run service?\u00a0 Weekly deployments worldwide.\u00a0 16 hours of stress testing every day.\u00a0 It&#8217;s like magic factory across the globe.\u00a0 Also run variant and invariant checks.\u00a0 Bots that are fixing nodes that might have issues.\u00a0 Consistency checking and reporting going over the data continually.<\/p>\n<p>In conclusion&#8230;wanted to put herself in our shoes. It&#8217;s a lot of information to digest&#8230;particularly if not invested in this technology.\u00a0 Why should you care?\u00a0 Rimma brings up a quote from Darwin:<\/p>\n<blockquote><p>It is not the strongest species that survive, nor the most intelligent, but the ones most responsive to change.<\/p><\/blockquote>\n<p>Can try CosmosDB for free, no need to credit card info, etc.\u00a0 Childhood dream of going to Cosmos (space) will be fulfilled.<\/p>\n<p>Key points to remember:<\/p>\n<ul>\n<li>global distribution, horizontal partitioning and fine grained multi-tenancy cannot be an afterthought<\/li>\n<li>schema agnostic database engine design is crucial for a globally distributed database<\/li>\n<li>intermediate consistency models are extremely useful<\/li>\n<li>globally distributed database must provide comprehensive SLAs beyond just HA<\/li>\n<\/ul>\n<p>This is a hidden gem, but the bigger message remember the entire NoSQL movement is a counter-culture movement. But the question is how would we build databases if we started today? Without the legacy that we know, would we look at things differently?\u00a0 Would we focus on limitations or focus on the bigger picture?\u00a0 Sometimes it is ok to break the rules and try to different things.\u00a0 Life is too short to build something that nobody wants.\u00a0 If we focus on real pain points, not the &#8220;nice to have things&#8221;, but really look at the issues and abandon our constraints and self&#8211;imposed limits, we can create a modern SQL.\u00a0 Rimma ends by thanking Dharma Shukla and entire CosmosDB team.<\/p>\n<p>&lt;collapses&gt;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Day 2 is starting here at PASS Summit in Seattle &#8211; watch this space for updates the next hour and a half! Grant Fritchey is kicking off day 2!\u00a0 I&#8217;m a big fan of Grant.\u00a0 He talks about the community and how people should take advantage of what&#8217;s available here at Summit.\u00a0 I couldn&#8217;t agree [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.9.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>PASS Summit 2017: Day 2 - Erin Stellato<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.sqlskills.com\/blogs\/erin\/pass-summit-2017-day-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PASS Summit 2017: Day 2 - Erin Stellato\" \/>\n<meta property=\"og:description\" content=\"Day 2 is starting here at PASS Summit in Seattle &#8211; watch this space for updates the next hour and a half! Grant Fritchey is kicking off day 2!\u00a0 I&#8217;m a big fan of Grant.\u00a0 He talks about the community and how people should take advantage of what&#8217;s available here at Summit.\u00a0 I couldn&#8217;t agree [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/erin\/pass-summit-2017-day-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Erin Stellato\" \/>\n<meta property=\"article:published_time\" content=\"2017-11-02T15:18:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-11-02T16:48:21+00:00\" \/>\n<meta name=\"author\" content=\"Erin Stellato\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Erin Stellato\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/pass-summit-2017-day-2\/\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/pass-summit-2017-day-2\/\",\"name\":\"PASS Summit 2017: Day 2 - Erin Stellato\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/#website\"},\"datePublished\":\"2017-11-02T15:18:17+00:00\",\"dateModified\":\"2017-11-02T16:48:21+00:00\",\"author\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/#\/schema\/person\/76170223ffffa1df03fd9be5b66cb158\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/pass-summit-2017-day-2\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqlskills.com\/blogs\/erin\/pass-summit-2017-day-2\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/pass-summit-2017-day-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PASS Summit 2017: Day 2\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/#website\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/\",\"name\":\"Erin Stellato\",\"description\":\"The SQL Sequel\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/#\/schema\/person\/76170223ffffa1df03fd9be5b66cb158\",\"name\":\"Erin Stellato\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0c8b485bd54ea26b57e99f79b525f409?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0c8b485bd54ea26b57e99f79b525f409?s=96&d=mm&r=g\",\"caption\":\"Erin Stellato\"},\"sameAs\":[\"http:\/\/3.209.169.194\/blogs\/erin\"],\"url\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/author\/erin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PASS Summit 2017: Day 2 - Erin Stellato","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.sqlskills.com\/blogs\/erin\/pass-summit-2017-day-2\/","og_locale":"en_US","og_type":"article","og_title":"PASS Summit 2017: Day 2 - Erin Stellato","og_description":"Day 2 is starting here at PASS Summit in Seattle &#8211; watch this space for updates the next hour and a half! Grant Fritchey is kicking off day 2!\u00a0 I&#8217;m a big fan of Grant.\u00a0 He talks about the community and how people should take advantage of what&#8217;s available here at Summit.\u00a0 I couldn&#8217;t agree [&hellip;]","og_url":"https:\/\/www.sqlskills.com\/blogs\/erin\/pass-summit-2017-day-2\/","og_site_name":"Erin Stellato","article_published_time":"2017-11-02T15:18:17+00:00","article_modified_time":"2017-11-02T16:48:21+00:00","author":"Erin Stellato","twitter_misc":{"Written by":"Erin Stellato","Est. reading time":"17 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/pass-summit-2017-day-2\/","url":"https:\/\/www.sqlskills.com\/blogs\/erin\/pass-summit-2017-day-2\/","name":"PASS Summit 2017: Day 2 - Erin Stellato","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/#website"},"datePublished":"2017-11-02T15:18:17+00:00","dateModified":"2017-11-02T16:48:21+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/#\/schema\/person\/76170223ffffa1df03fd9be5b66cb158"},"breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/pass-summit-2017-day-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/erin\/pass-summit-2017-day-2\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/pass-summit-2017-day-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlskills.com\/blogs\/erin\/"},{"@type":"ListItem","position":2,"name":"PASS Summit 2017: Day 2"}]},{"@type":"WebSite","@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/#website","url":"https:\/\/www.sqlskills.com\/blogs\/erin\/","name":"Erin Stellato","description":"The SQL Sequel","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqlskills.com\/blogs\/erin\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/#\/schema\/person\/76170223ffffa1df03fd9be5b66cb158","name":"Erin Stellato","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0c8b485bd54ea26b57e99f79b525f409?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0c8b485bd54ea26b57e99f79b525f409?s=96&d=mm&r=g","caption":"Erin Stellato"},"sameAs":["http:\/\/3.209.169.194\/blogs\/erin"],"url":"https:\/\/www.sqlskills.com\/blogs\/erin\/author\/erin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/posts\/880"}],"collection":[{"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/comments?post=880"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/posts\/880\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/media?parent=880"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/categories?post=880"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/tags?post=880"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}