Category: Editorial

  • The Power BI Pivot

    This week we had quite a bit of Power BI content appear on various blogs and sites. Some of this was normal traffic, with Power BI gaining popularity and more data professionals writing about the topic. There are always quite a few blogs from The Guy in a Cube, including a look at how to better use colors, but I also see more and more posts from others. We had others about R in Power BI and custom visuals.

    The big news this week was the announcement of the Power BI Report Server from Microsoft. This is coming late in the second quarter of 2017, according to the SSRS blog, which I assume means in the next month. The second quarter is almost over, and with Microsoft ending their fiscal year in June, I’d expect this to release sooner than later. There is also a Power BI Premium, which apparently allows an enterprise to purchase capacity in the cloud and then concurrently deploy Power BI reports on-premises.

    Many people have been looking forward to this. I’ve been hearing from some reporting authors that we were going to get Power BI rolled into SSRS as an option for SQL reporting. Apparently we are, but there are some new costs here. This may change your calculation of whether this is a good move for your organization, but certainly I think that Power BI is one of the better reporting engines I’ve seen.

    The licensing is confusing, and I liked in a few other thoughts on the announcement from others, such as Dan English and James Serra. Both note that the free tier gets to connect to the same data sources as the Pro previously could (including on premises data), which is good. The storage quota increases to 10GB, up to 8 refreshes a day and a bit more. Pro is still $10/month, and apparently is still needed for those that spend the money on Premium if they author reports or export to Excel, even if you have Enterprise Edition. At least, that’s what Mr. English notes in the license terms. Alternatively you can spend a few thousand dollars a month for the cloud version and let all your employees access reports in the cloud or from a local report server.

    Power BI has been one of those amazing products that I’ve been very impressed with in the technical sense. I can build amazing reports, and get great interactivity, allowing me to analyze data in a way that hasn’t always been possible in a visual tool. Almost every time I see a new type of report or some demo, I’m impressed with what’s possible. I love the desktop tool for my own use, since it’s a nice, responsive and easy to understand interface. However the deployment method (originally just with PowerBI.com) and the licensing have always struck me as a bit strange, and perhaps somewhat crippled. It certainly felt that many features didn’t cost me money directly, but there was a cost. With this latest change, it feels like another pivot to try and increase revenue, but not in a way that’s attractive to me.

    Microsoft wants to make money, and they’ve certainly invested money in the Power BI platform, so they get to make the rules. I do like Power BI, and if the costs make sense to you, and there’s enough value, this is certainly a very powerful visualization and reporting tool that I can only imagine will become more and more useful over time.

    Steve Jones

  • Thinking Time

    I’ve been fortunate in my career to meet a lot of different people with a variety of views on the world, career, technology, and more. I’ve learned a lot about various things by focusing on conversations with these people and getting alone time with them, just talking. This is one reason I make it a point to get a couple quiet, focused conversations with a few person at events, and I’ll usually bail out of dinners with more than 6 people. They’re just too chaotic and less attractive to me when I’d rather have an engaging chat.

    I was reminded of a few pieces of advice I’ve received in life while watching Jes Borland’s keynote at the Chicago Code Camp. It’s a nice talk, and worth a bit of your time to help you reset your view of the world and remember to choose the things that matter to you. Certainly Jes’ advice to learn to say “no” is some of the best advice I’ve ever learned in my life. I’m still trying to get better at this, but I am learning to let some opportunities go by and not agonize. Time is far and away the most valuable resource I have in life, and I value it more each day as I age.

    One of the best pieces of advice, though, came from @sqlandy. Years ago, as we were both working full time jobs and keeping SQLServerCentral going at night, he let me know that we were treading water, just doing the same things we’d been doing and thinking about driving our enterprise forward. He’d noticed the same problem at work, with so many people letting themselves get caught up in day to day tasks and not looking ahead. We end up worrying about getting a query done, or checking a server, or writing an email, updating our resume, getting dinner cooked, and we are not coming up with ways to improve their job, career, life, server monitoring, development habits, and more. We’re not actively moving in a direction that matters to each of us.

    Jes reminded me of the need for thinking time in her keynote. We all need some time that isn’t devoted or focused on a task, or a particular endeavor. We need time that let’s us just think about anything, or everything related to a topic. Unstructured time that lets our mind wander over possibilities, opportunities, or even evaluating some course of action. Time away from a keyboard, time to think about how you might change your world.

    I often find running or swimming is good time for me. Taking a known route, not worried about speed or pace, just plodding along and letting my mind wander. Sometimes I’ll even end up walking, or sitting by the side of the pool, just thinking because my body won’t move on automatic when I get deep in thought. I have sometimes tried to just sit and think, staring out the window, letting my thoughts take me where they will.

    Life is busy, and it’s easy to get caught up in all the demands on our time. It’s even easy to get caught up in trying to relax and focus on a task (cooking, playing games, etc.). Taking some time to think about a topic in an unstructured way, without any goal or outcome is important to help us evaluate and review where we are, and where we might want to go in some part of our life.

    Steve Jones

    The Voice of the DBA Podcast

    Listen to the MP3 Audio ( 5.5MB) podcast or subscribe to the feed at iTunes and Libsyn.

  • IoT Pros and Cons

    The Internet of Things is coming, or maybe it’s a wave that’s growing underneath us right now. It certainly hasn’t crested if that’s the case, and I expect that we’ll see more and more devices, sensors, and applications coming in the next decade. We’ll get larger and smaller devices, commercial and industrial tools, some amazing innovations and some silly ones that will make most people roll their eyes.

    I ran across an article with some pros and cons from the general perspective. Certainly security is a huge concern, and one that isn’t well addressed by many organizations. In fact, many of the demos of the Azure IoT hub don’t do a great job of showcasing security. I think the Azure IoT Hub is a great idea, with some well thought out security measures, but developers need to build in habits early, and certainly include them in their applications. Let’s leave aside security for a moment and stipulate that it is, and likely always will, be a concern and issue.

    What about the data perspective of IoT? The age of new sensors and devices mean a glut of data, perhaps an overload. We may get a scale of data that we don’t expect and need to plan for more TB or PB sized databases. Those are serious challenges for any organization, and likely we’ll need archival plans to remove old data, or at least ensure we don’t have to scan it for queries. We might even need some sort of governors that prevent the errant “select * from table” queries that try to query 100 billion rows.

    We also may see crazy rates of data acquisition as well. One of the strengths of some NoSQL platforms is that they handle quick streaming sets quicker than relational engines. In fact, in some domains we might not even want to bother storing all the data we can and may need to process this as we get the data, only storing certain samples or ranges. I worked with a stock market application once and the streaming of prices was enough to overwhelm our SQL Server until we learned to limit the data we actually needed to store in the system.

    There’s also the chance we’ll get new, or different types of data that we aren’t sure of the value. Data that might not seem like there is an obvious use for it, but we’re just gathering the bits because a sensor or device captures them. This is where I see more intelligent analysis, more of the “data science” being used. Most of us won’t know how to create these queries, but we certainly will know how to implement and run them, which is a much simpler process. This also means we might need to learn more about to partition, archive, or otherwise move some data of OLTP type, transactional systems to help manage our loads.

    I think IoT is somewhat scary, but also very exciting. New types of data, new applications, new uses for data, which will make our jobs very interesting in the coming decade.

    Steve Jones

  • The Secret Password

    As I work with more server systems that help developers run Continuous Integration and automated releases, one of the things I see used often are variables. These are values you can set for a particular process and reference inside of that process. Great for setting server names, paths, etc. In releases, these are great for specifying specific values that change for each environment, such as the instance name or IP address.

    As with many developer based systems, security is not always set tightly on these systems and any developer can access the build server to kick off builds, reconfigure a process, etc. That makes sense in a CI process, but not so much in a release system. This is one reason I do recommend a separate release server from the CI server. You can use Jenkins or TeamCity to perform releases, but is it a good idea? Have you thought through the security?

    In the release servers, one thing that most systems allow the admin to do is use a variable for a password and mark it secret, so the value cannot be recovered. In this way, if some developer is working on the release process, they can’t get the password to the production server. They can only click the buttons that deploy to that server.

    However.

    They can deploy to that server, and they don’t need the password. If I were to execute a script in the release system that executes the “CREATE USER” and a “ALTER ROLE ” commands to give me access to data, does it matter if I know the deployment password is “G4da%$2h#5f” or $(ProdPwd)? It doesn’t. The actual value isn’t relevant; I just need to be able to use it.

    I think release systems are great pieces of software for reducing the risk of your deployments, but I do think the security models need to be carefully designed and easy to configure, especially when it comes to allowing arbitrary code to be submitted and executed by one person. Be sure that developers can’t necessarily deploy code directly to production servers, whether the password is hidden or not. If there is a way to use the value, someone will find it.

    Steve Jones