November CASSUG Monthly Meeting

Our November meeting will again be online. NOTE: you MUST RSVP to the Meetup at https://www.meetup.com/Capital-Area-SQL…/events/274347375/ to view the Zoom URL!

Our November guest speaker is Leslie Andrews!

Topic: Building a Strong Foundation for Data Analysis

We are living in a world full of data but what we need is information. What is required to transform data into information? What are the foundational activities your organization needs to do in order to produce analytics that you are confident in sharing? In this session we will discuss what is needed for your organization to convert data into information, the basics of: Data Governance, Data Modeling and how to have an immediate impact using tools like Power BI to deliver value; and, Data Visualizations and telling stories with the data.

About Leslie:

Leslie Andrews is a Senior Consultant with 3 Cloud Solutions (formerly Pragmatic Works Consulting), an Azure Certified Data Engineer, and was a 2018-2019 Idera ACE. She obtained her BBA with an MIS concentration from the Anderson School of Management at the University of New Mexico and worked in the public sector for 15 years developing applications, databases, and ETL processes. She enjoys spending time with her family, travelling, climbing, kettlebells, and reading epic fantasy; she is active in the SQL community, and on the Governing Board of a Charter School.

Our online meeting schedule is as follows:

  • 6:00: General chat, discussion, and announcements
  • 6:30: Presentation

We usually wrap up between 7:30 PM and 8:00 PM.

Please RSVP to Meetup (https://www.meetup.com/Capital-Area-SQL…/events/274347375/), then use the online event URL to join (note: you MUST RSVP for the URL to be visible). We will send out a meeting password as we get closer to the event.

#SQLSaturday #961 Albany — TOMORROW! July 25 #SQLSat961 #SQLSatAlbany

IMPORTANT!  If you are attending SQL Saturday, you MUST register on the SQL Saturday website (NOT Meetup or Facebook) at https://www.sqlsaturday.com/961!

This is a reminder that tomorrow, July 25, CASSUG will host Albany SQL Saturday for the seventh time!  And for the first time, Albany SQL Saturday is going virtual!

We will have a full day of great presentations that cover a variety of topics that include, but aren’t limited to, business intelligence, data science, database development, data architecture, and professional development!

We will also have our usual wrap-up and raffles at the end of the day!

To register, go to https://www.sqlsaturday.com/961.  It is important that you register at this site; RSVPs to Meetup or Facebook do not register you for SQL Saturday!!!

SQL Saturday is always a good time!  We hope to see you (virtually) on Saturday, July 25!

#PASSSummit 2020 #SQLFamily

It’s that time of year, when aspiring PASS speakers find out whether or not they’re speaking at PASS Summit. I was fortunate to be selected to speak last year, and I had the time of my life! If you want to read more about it, check out my synopsis of it from last year!

I got the official email notification yesterday (and now that the list is up, I can say it publicly). Alas, I was not selected this year. Oh well. C’est la vie.

That said, I was (and still am) excited about being selected last year. To be selected to speak at PASS Summit just once is a great honor and a nice feather in my cap. To be selected again would be a bonus. And although I wasn’t selected this year, it won’t preclude me from applying again for next year… and the next… and the next.

Unfortunately, given my current employment — and subsequently, my financial — situation, it is highly unlikely that I will be able to attend this year’s Summit, even if COVID-19 has forced it to a virtual event. Although the fact that the event is virtual means prices are reduced, they are still too high for me to attend (unless, between now and then, I land a job and my new employer would be willing to pay my registration fee — note to any future employer who might be reading this: here is a letter that makes the case as to why it would be good to send me to PASS Summit! Note that this link downloads an MS Word document). “Virtual” does not mean “free;” there are a number of expenses that still need to be paid, even for an online event. My friend Monica Rathbun wrote a nice article about what it financially takes to put on a PASS Summit, even a virtual one.

I went through the speakers list, and I was happy to see that a number of my #SQLFamily friends were selected to speak! Congrats to all of you who were chosen!

And although I might not be able to attend this year, if you’re able to get to a PASS Summit, I highly suggest you do so! You’ll learn a lot, and it’s a great time!

#SQL101: Create tables from CSV flat files

With my previous article about getting into REST applications, I figured it would be a good idea for me to set up a data source so I could practice. Besides, I had reinstalled SQL Server 2019 on my machine, and I needed to import some data so that I could brush up on my SQL skills as well.

Being the baseball nut that I am, of course, I had to import baseball statistics, so I decided to reimport the most recent data from Sean Lahman’s baseball database. The last time I did this exercise, I downloaded a database format. I don’t remember what format I used (the links all say “Access” — which I don’t remember downloading), but the files I used had an .sql extension. This time, I used the comma-delimited version, which downloaded a zip file containing files with a .csv extension.

I wanted to import the files directly into my database and have them create the tables upon doing so, so I opened up my SSMS, created a new Baseball database, and looked into how to do this. After poking around a bit (and a little bit of Googling), I found that flat files could be imported by right-clicking the database of your choice (in the below example, “Baseball”), clicking Tasks, and selecting Import Flat File.

Selecting this opened an Import Flat File wizard. First, it prompted me to select the input file. (Note: if you are importing multiple files, as I did for this little exercise, the wizard is smart enough to remember your last folder when you click Browse.)

When it looks at the flat file, it gives you a preview of the data that you’re importing. Since, for this exercise, I’m importing comma-delimited flat files, it was able to put my data into nice, neat columns.

Clicking “Next” brought me to a screen where I could modify the columns. I like this option a lot, as it gives me an opportunity to set up my data schema the way I want. If you’re a SQL or database newbie, I strongly suggest that you learn about primary keys and data types and take the time to set them up at this point.

In this particular example, I set my yearID to char(4), stint to int (I will likely change this to tinyint), teamID to char(3), lgID to char(2), and pretty much everything after lgID to int. I also set my first five columns as a composite primary key and everything else to be nullable.

I must have set these columns up successfully, because when I ran it, it did so without complaining.

I wish I could say that I imported all of my flat files without a hitch, but I did run into a few that didn’t run successfully the first time. Here are some of the issues that I came across.

  • I had opened a file in Excel to check data types, forgotten to close it, and the import complained that it couldn’t work because the file was still open.
  • I miscalculated a few field sizes, and came across messages saying that my column sizes were too short (for example, setting nvarchar(10) for a column that included data with 15 characters).
  • There were a few cases where I simply had the wrong data type.
  • My Pitching table included a column for ERA, which I was surprised to see. Reason: ERA (Earned Run Average, for those of you who are baseball-challenged) is a calculated statistic, like batting average. However, batting average was not included in the Batting table. So, I set the column data type to float. However, when I tried to import it, it failed. When I looked at the data, I found entries under ERA that said “inf” (for “infinity”)*. In this case, I did some data cleansing. I got rid of these entries and saved the flat file. It then imported with no problem

(*Some of you might be wondering, how do you get an ERA of infinity? Answer: you give up runs without getting anyone out! Mathematically, you would get a divide-by-zero error for calculating ERA, but in baseball parlance, it means you give up runs and can’t get anyone out!)

So hopefully at this point, you now have an idea as to how to import flat files into a SQL Server database (and maybe even got a small taste of data types and primary keys). And hopefully, this little utility saves you a lot of grief when trying to import flat files.

Notes are not documentation

Since I speak frequently at SQL Saturday, much of my audience is usually made up of data professionals. So whenever I do my presentation about technical writing or talking to non-technical people, I always ask the following question: do you understand the difference between data and information?

For those of you who don’t understand what I’m saying, let me elaborate. The terms data and information are not, I repeat, not interchangeable. Data refers to the collection of statistics, facts, and figures that are gathered through observation, research, and log captures. Information, on the other hand, is an interpretation of that data. Its creation involves analyzing the data, interpreting it, drawing conclusions from it, and presenting it in a way that can be understood by others. To put it another way, data refers to the raw materials, while information is the “finished” product.

(We could also get into a discussion that talks about how bias is introduced when data is analyzed and interpreted by humans, all of whom have some measure of preconceived bias, no matter how small, about the data they’re researching, but it goes beyond the scope of this article, and I won’t get into that now. That is another topic for another day.)

Once I establish that distinction, that’s when I go into what I believe is an important point about written communication: there is a difference between notes and documentation.

I believe this distinction is critical, and is often overlooked by people trying to write documentation. (One of the biggest things that disparaged one of my previous employers was that they did not understand — or worse, did not care about — that difference.) How many times have you been frustrated whenever you’ve asked for documentation about something, and the person you asked pointed you to something like a loose collection of seemingly-meaningless and disorganized scribbled notes that are kept in a three-ring binder? (Okay, maybe they’re kept digitally these days, not in a binder, but humor me, here.)

Granted, notes are important. They are thoughts in someone’s head that are expressed in written form. They are often important concepts that are jotted down so they can be remembered later. Those notes can come in many forms. How many of the best ideas, for example, started out as notes scribbled on a cocktail napkin?

However, more often than not, notes are only meaningful to the person who wrote them. Notes are mnemonics. They are not conveying information to a wide audience. In all likelihood, most people who read notes will not understand what they mean. Only the person writing the notes (or, if they’re jotted down during a meeting, the people attending the meeting) will understand what the notes are.

Documentation, however, is an interpretation of those notes. Documentation is notes that are presented in a way so that they can be understood by a wider audience. This is what professional communicators, such as technical writers, do. They’re in the business of taking loose data, such as notes, and making it meaningful.

Let me say it again for emphasis: notes are not documentation. To go back to my data and information analogy, data is to information what notes are to documentation. Notes are the raw material, but documentation is what makes the notes meaningful.

May CASSUG Monthly Meeting @CASSUG_Albany #SQLUserGroup #SQLFamily

Our May CASSUG monthly meeting will be virtual! It will be on Monday, May 11, at 6 pm (EDT).

Our May speaker is Argenis Fernandez! He will talk about SQL Server Virtualization and I/O Patterns

To join the meeting, use the following link and follow the instructions: https://datto.zoom.us/j/99185518142?pwd=eDRZZXFLdis0YVBjU3BXRGdtQTdjdz09

For more information, see our Meetup link at https://www.meetup.com/Capital-Area-SQL-Server-User-Group/events/267751970/

Hope to see you online at the event!

I “speak” Oracle. Can I go to SQL Saturday?

I’ve been involved with SQL Saturday for a while — since 2010, to be exact — and have worked with SQL Server for even longer than that. However, I currently work in an Oracle environment. This likely begs the question: if I work in Oracle, is SQL Saturday still worth my while?

The short answer: yes, absolutely!

The longer answer: there is more to SQL Saturday than just SQL Server.

Although Oracle and SQL Server are different platforms, they are both relational databases. Granted, there are differences between the two — having worked with SQL Server for so long, I’m still trying to grasp some of the concepts of Oracle. However, many of the concepts between the two relational databases are the same. Both databases share the same SQL language — albeit with some differences (akin to, say, differences between American and British English). Table structures are largely the same (again, there are differences, but they share enough similarities that knowing one allows you to grasp the other).

While differences persist between the two environments, cross-pollination between them is not necessarily a bad thing. Understanding their differences can often lead to a better understanding as to how they work.

On top of that, SQL Saturday is more than just the technologies. Speakers, myself included, present on a variety of topics that aren’t limited to just SQL Server. A number of speakers present on BI topics (some SQL Saturdays, in fact, are BI-specific; look for any event labeled “BI Edition”). Other topics include strategy, architecture, disaster recovery, and professional development. (As I’ve stated time and again, my own presentations are all professional development talks; they have nothing to do with SQL Server.)

And SQL Saturday isn’t just about attending presentations and learning. SQL Saturday is a huge opportunity for networking, which is essential for surviving today’s professional market. I’ve written and presented extensively about the importance of networking. A number of other people have also presented on the importance of networking; for PASS events, I highly recommend Matt Cushing‘s presentation about getting ready for a SQL event!

And if that’s not enough, SQL Saturday is just plain fun! I always have a blast at every event I attend!

So even if you work with Oracle, or NoSQL, or Access, or whatever your database of choice, SQL Saturday likely has something for you. Find an event near you, and come join us in the community!

Monthly CASSUG Meeting — September 2019

Greetings, data enthusiasts!

Our September speaker is our own Greg Moore! He will do his presentation titled: “Pocket-sized Server: SQL Server for under $200!” For additional information and to RSVP, go to our Meetup event page at https://www.meetup.com/Capital-Area-SQL-Server-User-Group/events/264169963/­

Thanks to our sponsors, Datto, Capital Tech Search, and CommerceHub, for making this event possible!

Hope to see you there!

Coming up with presentation ideas

As a followup to yesterday’s article, I thought it might be fitting to talk about presentation ideas.

Despite the fact that I speak regularly at SQL Saturday, none of my presentations (up to this point) have anything to do with SQL Server or even anything data-related. My topics revolve mostly around documentation and communication. So how do I go about coming up with presentation topics?

To answer this, I suppose I should go back to the beginning, and (re-)tell the tale as to how I got involved.

Back when I was primarily a SQL Saturday attendee, I knew I wanted to get involved. The question was, how? At the time, I looked around at the people attending the event, and I said to myself, “these people probably know more about SQL Server than I do. What can I present that these people would find interesting?”

In the early days of our user group (I was one of the original co-founders and members), we sought out speakers to present. I thought about data-related topics. I even took a turn one meeting where we were encouraged to bring up SQL-related issues as discussion topics. But when it came to ideas for data-related topics, I kept coming up empty.

I thought about a time at one of my jobs where I became an accidental customer service analyst. As a developer, I was not allowed to speak with end-users, but one day, I received a phone call from a user. It turned out that he had gotten my number from someone who was not supposed to give out my number. I was able to walk him through and satisfactorily resolve his issue. In fact, I did such a good job with it that, from that point forward, I became one of the few developer/analysts who was allowed to talk to customers. It made me realize that I had a knack of being able to discuss technology with end-users without being condescending to them.

During one user group meeting, I jotted some notes down. By the end of the meeting, I had come up with enough material for a presentation. I ran my idea past my fellow user group attendees, all of whom said, “that would make a great presentation!”

I worked on the presentation and presented it at a user group meeting.

Four years later, I will be giving that same presentation at PASS Summit! I’ve come a long way!

While that ended up being a good presentation, I’ve tried not to rest on my laurels. I still try to come up with new presentation ideas. I’ve come up with several since then, and I’m still trying to come up with more.

When I think about presentation ideas, I generally keep these thoughts in mind.

  • Is it a topic that attendees will find interesting?
  • Is it unique?
  • Is it something about which I’m knowledgeable, and I feel comfortable talking about?
  • Is it something I can present within an hour? And do I need to cut it back to an hour, or do I need to fill it in to an hour?

I still remember a piece of advice that Chris Bell, a DBA and fellow SQL Saturday speaker, once told me: “an expert is someone who knows something that you don’t.” That was profound advice, and I’ve never forgotten it. So far, it’s served me well in my speaking endeavors.

So if you struggle to come up with presentation ideas (like I do!), hopefully this will help you get the ball rolling. I look forward to seeing your presentation soon!

#SQLSaturday NYC — I’m speaking, I’m speaking, I’m speaking! #SQLSat912

Image result for manhattan skyline

The schedule for SQL Saturday #912 in New York City (Saturday, October 5) was released this morning, and I’m on it — not once, not twice, but three times!

I am scheduled to do the following three (!!!) presentations:

Looking at this schedule brings up a myriad of thoughts for me.

  • I don’t ever remember doing three presentations in a single day at any single event in my life. So I’m venturing into uncharted territory here!
  • Without fail, I absolutely love any SQL Saturday I attend! Also without fail, I am nearly always wiped out at the end of each one. I can only imagine how tired I’m going to be at the end of this one. At least I can sleep on the train ride home!
  • I purposely scheduled a late train home that night after the event so that I can get a decent dinner down in the City. I figure a couple of drinks during dinner might be in order that night!
  • My brother, who lives in Queens, has his birthday a few days before the event. I’m hoping to make it a birthday dinner for him that night!
  • To his credit, Thomas Grohser, who is one of the co-organizers for the event, emailed me asking if I was okay with doing three presentations. I sent him back a two-word reply: “challenge accepted!”
  • I was very happy to see that, as we requested, Matt Cushing and I have our networking sessions (titled Networking 101 and Networking 102, respectively) scheduled back-to-back! Go check out Matt’s session; it’s a good one!
  • If there’s any downside to doing three presentations, it’s that I likely won’t be able to attend other presentations that interest me. I do intend to attend Matt’s session (I need to keep my streak going, after all), and I’ll need to check the schedule to see what other sessions I want to attend (if I can).
  • Of all the SQL Saturdays I’ve ever attended, I’ve attended New York City the most often. For several years, including the first one I ever attended, I only attended NYC SQL Saturday. So for me, being chosen to selected to speak for NYC is special to me.
  • When I spoke here last year, I had an opportunity to get breakfast at Ellen’s Stardust Diner. It was right next to my hotel and right on my way to the Microsoft office (where SQL Saturday NYC is held). I managed to get there early enough to beat the tourist crowd. This year, I am once again staying in a nearby hotel (only a block away from where I stayed last year). I’m hoping to get there for breakfast again. Yes, I know it’s a tourist trap, but the singing wait staff is something else! You need to check it out at least once!

I can probably keep writing more thoughts, but at this point, work beckons! In any case, if you’re interested in attending NYC SQL Saturday on October 5, go to their web site and register for the event!

And come see me present — three times!