/Using Apps Script with BigQuery: A developer perspective

Using Apps Script with BigQuery: A developer perspective

Video: Using Apps Script with BigQuery: A developer perspective


BILL LUAN: Shanghai GDG is a very interesting developer community. SUSANNAH RAUB: I’m glad somebody has asked this question. RETO MEIER: This is where the magic happens. JENNY MURPHY: This is primarily a question and answer show, so if any of you out there would like to ask questions. IKAI LAN: Hi, everybody. Welcome to a very special edition of Google Developers Live. My name is Ikai Lan from the Apps Script team. Joining us today is a very special guest.

This is Michael Manoochehri from the Google BigQuery team. MICHAEL MANOOCHEHRI: Hello, everybody. How’s it going? How are you doing? Good to see you, Ikai. IKAI LAN: Good to see you, too. MICHAEL MANOOCHEHRI: It’s been a while. IKAI LAN: So we used to work together in the San Francisco office, and he’s visiting New York City. And this is his first time in the Google New York office. So what do you think so far? MICHAEL MANOOCHEHRI: It’s a big building. It’s a great place. IKAI LAN: It’s a very big building. There are a lot of people that work here in many, many stories. You’re here for the Strata Conference. MICHAEL MANOOCHEHRI: Yeah, Strata New York Hadoop World Conference. So it’s actually a big conference. It’s about big data, a lot of analytics, lot of new technologies. So I’m here to talk about Google BigQuery at that conference. IKAI LAN: And speaking of Google BigQuery, that’s what this special Google Developers Live show is about. So today, we’re going to be talking about how to use Google BigQuery to do analysis on large data sets and how to pipe that into Apps Script so you can quickly peel dashboards or integrate with Google Apps technology such as Gmail, Calendar, or Spreadsheets.

So before we start the demo, why don’t you tell us a little bit about BigQuery for the people that aren’t familiar? MICHAEL MANOOCHEHRI: BigQuery is a service for running ad hoc analysis on really large data sets. And you can get the results back quickly. You can use a SQL-style language, which allows you to write your queries quickly as well. And my favorite part about it is it’s an API. It’s a RESTful API, so you interact with it through the API. That means it’s easy to build applications with it. It’s easy to integrate into your own applications. So it’s a very cool technology. It’s actually based on some internal technology that we have at Google. So we use it internally as well, at least the underlying technology behind it. And I really like using it with Apps Script, actually.

IKAI LAN: I was waiting for that one. MICHAEL MANOOCHEHRI: Yeah, exactly. IKAI LAN: So tell us about who’s using BigQuery and what other types of things they’re using it for. MICHAEL MANOOCHEHRI: Yeah, so a lot of cool applications. We have some companies using it for social game analytics. So they’re using BigQuery to analyze massive amounts of data from games, for example. We have people using it for transportation industry, hospitality industry, anything where there’s lots of big data. So people love using it to integrate with their own applications, like I said. So people are building visualizations around it. We have a lot of visualization partners using it as well. So it’s very cool. Internally at Google, we use it for different projects, actually with Apps Script. Because Apps Script is a great way to build work flows and prototype UIs around it. So we actually have been using it with some ads data. We have some people looking at just a general server log data, things like that.

So it’s really easy to get started. They’re very complementary technologies. Because BigQuery’s great for asking questions about large data sets and getting a response back. But once you get that response back, you need to do something with it. You need to visualize that data. You need to automate that data. There’s lots of things you can do. And that’s where Apps Script comes in. It’s very cool. So I like to say, use BigQuery for that large data, analyzing this massive data that it’s hard to wrap your head around. And then bring it into Apps Script and actually do something with it, like visualize it, analyze it. IKAI LAN: So when you’re talking about large data, what’s– I mean, I know you’re going to show us a demo fairly soon, very quickly. So why don’t we jump into that? I mean, when you say large data, are you talking like kilobytes or megabytes? MICHAEL MANOOCHEHRI: BigQuery scales very well, so we’re talking terabytes.

IKAI LAN: Terabytes! MICHAEL MANOOCHEHRI: And I’m waiting for someone to bring us some petabytes. I’d like to try it on that. But when I say big data, I mean literally a lot of data, billions of records. I’m going to show you a data set that I think of as pretty small. It’s about 100 million records, Wikipedia revision data. But we can scale very well. So terabytes, I’d like to see if you have multiple terabytes. Bring it to us and we’ll talk about it. IKAI LAN: So much for the days when 640 kilobytes were all you needed. MICHAEL MANOOCHEHRI: Yeah, I remember that. IKAI LAN: Imagine that. MICHAEL MANOOCHEHRI: Those 40-meg hard drives. Oh, my god, 40-meg hard drive! IKAI LAN: You know, I even remember when I had my 386. I had a 50-megabyte hard drive. And it was like huge. MICHAEL MANOOCHEHRI: How will I ever fill this up? IKAI LAN: Boom! Head explode. So why don’t you go and show us a little bit of BigQuery before we dive into the Apps Script portion? MICHAEL MANOOCHEHRI: Let’s start with the classic BigQuery kind of demo. So this is the BigQuery web UI. I mentioned that BigQuery uses an API.

But when you sign up for BigQuery, you actually have access to this web UI. And this lets you run some sample queries on some of the data. We provide some public data sets for you to test on. And we’re going to do the demo with the data sets. This is sort of the classic of BigQuery demo query. This is going to query over some Wikipedia revision history that we have. So we have the entire Wikipedia revision history up until about 2010. IKAI LAN: So what is a revision history? What does that mean? MICHAEL MANOOCHEHRI: So every time anybody change a Wikipedia page, this is a recording of that change. IKAI LAN: Wow. MICHAEL MANOOCHEHRI: So it may be a username. It might include an IP address plus some information like a message about it. But what’s cool about this data– and we show this demo a lot. What’s cool about this data is you can see what the most revised articles were. So before we get into that, I’m actually going to show you how to do that through Apps Script, but let me just show you a quick count. IKAI LAN: So I’m looking at this right now and this looks a lot like SQL to me. MICHAEL MANOOCHEHRI: Yes, that’s right. As I mentioned before, it’s a SQL-like language.

It’s not standard SQL, but it’s very close. So the idea is to get you up to speed quickly. And a lot of people have used SQL with relational databases. So this is a way to just kind of get you started. Also, if you’ve ever used like Mongo or some of those document stores, oftentimes when you need to aggregate queries, you’re writing a MapReduce function. You’re literally writing a mapper and a reducer. And this gives you the same kind of aggregate query power but expressed in SQL, which is very cool. So anyway, I just ran this. And it took just a few seconds, actually. I processed it, and this number is quite large. But you can see it’s something like we’re going to look at 223 million records. So that’s a pretty big data set. If you were using a relational database on a single-node server, this would pretty much take forever to kind of run.

IKAI LAN: Well, not a server that I build. MICHAEL MANOOCHEHRI: Yeah, not an Ikai Lan server. IKAI LAN: But OK. A normal person server. MICHAEL MANOOCHEHRI: And to be fair, this is just a count query. So actually, that’s pretty fast with a relational database. But if you want to do some kind of aggregate queries, like what are the sums of the amount of characters changed, these kind of queries are very difficult for relational databases. IKAI LAN: Because what would these look like when you’re doing the query? You’d actually have to go in and you would have to check every single row. MICHAEL MANOOCHEHRI: It’s a table scan, basically. And what’s interesting about the design of BigQuery is that we embrace the table scan. We actually can run a table scan for every query that’s designed to do that unlike a relational database, where that’s a scary thought. So anyway, so this gives you a sense of the data set we’re going to play with. So we’re going to just start from scratch.

READ  Why the Nokia revival is in trouble (and how to fix it)

I’ve created a new spreadsheet in Google Drive. And we’re going to actually run through the process of integrating with BigQuery. IKAI LAN: So what we’re doing now is Google BigQuery is very, very good with data analysis. And they made some very good decisions on the team, which was, let’s build a robust, powerful API so that people could build their own visualizations. Because if they were to take time away from doing BigQuery-related things and making table scans awesome– which again, very, very scary– that’s less time to really improve the service. Now, Apps Script is very good for building UIs quickly, as many of you may know. Hopefully, you’re joining us as Apps Script users. But some of you guys will be BigQuery users. And when you see how quickly we’re able to build UIs, what Michael is going to show us is how he uses the built-in spreadsheet UI to work with BigQuery. MICHAEL MANOOCHEHRI: Right. So let’s get started.

The first thing you need to know is BigQuery needs to be activated through the Google Developers console. So what I’ve done here is I’ve actually just created my own test demo, BigQuery demo project. And the important thing to note for building an application is the project number. So everything with BigQuery is actually attached to a Google Developers project. And so here I’ve gone to developers.google.com/console. IKAI LAN: I notice that you’ve got upstartstartup.biz. What’s going on? Is this like your side thing? MICHAEL MANOOCHEHRI: That’s my little– yeah, well, that’s my test account. IKAI LAN: Superstealth? MICHAEL MANOOCHEHRI: It’s my non-stealth startup. I’m sorry for anyone who wanted that domain name, by the way. I don’t actually use it for startups.

So I’m going to note the project number here. And so here under Apps Script, I’ve opened up the Apps Script script editor. IKAI LAN: And you do this via Tools. And just to show people, we do this via Tools and Script Editor. So for those of you that are a BigQuery user and new to Apps Script, this is how you get to Script Editor from Google Spreadsheets. This is where you would create your custom functions and the things that you want the spreadsheet to do, things you wanted to automate. MICHAEL MANOOCHEHRI: Definitely. And to save time, I’ve actually pasted some code in here. But once we’ve created our API console project, I’m also going to activate the Google API. So that’s under the Script Editor for Apps Script and under Use Google APIs.

So I’m going to click on that. And it’s going to open up a window that’ll give me a collection of APIs that I’ll have access to. I’m going to toggle on the BigQuery API. It says version 2 here because we’re currently on that version. But that’s the only one. You don’t need an API key. This is a common question I have. Do we need an API key? No, just toggle on the BigQuery API. So that’s it. Now, the libraries for our project are updated. That’s great. And in my code, the first thing I’m going to do is create a variable that holds my project number. Because we’re going to refer to that in the code later. So I’m going to paste in the project number that comes from my API console. And that’s it. I should be ready to go, to start actually using this.

IKAI LAN: And for the BigQuery users, this is our cloud-based editor for Apps Script. So it’ll do things like auto completion and just basic editor functions. I don’t want to call it an IDE, but you can run and deploy applications all from the web, all straight from the cloud. MICHAEL MANOOCHEHRI: So I’m actually going to move the Script Editor over so people can see the spreadsheet behind it. I think that’ll actually help see what’s going on. So I’m going to run some of these functions in the Script Editor. And it’s going to update this live. So let me find that. IKAI LAN: Now what you’re seeing here is that this spreadsheet is the parent container of this script. So when you run this code and it refers to a parent spreadsheet, well, you’ll see this code. For instance, varssspreadsheet app.getactivespreadsheet And Michael’s doing this globally. You don’t have to do that. Usually, it’s better not to. This is referring to the parent spreadsheet, so it very easily talks to a UI that you can work with. MICHAEL MANOOCHEHRI: Definitely.

Yeah, this is sort of a stripped-down example, just in practice to kind of show you some of the querying features. But yeah, there’s much more complicated scripts that actually have sort of a better design there. So here, I’ve actually hard-coded in a SQL statement. So you saw me in that web UI run basically a SQL statement. Here’s one that’s going to find the top most revised articles from Wikipedia. And before I do anything else, I’m actually going to use the Browser.msgBox function to just pop up the result. And you’ll see what a raw query result is. Now, don’t be scared. It’s not going to look like what we’re going to do later on. So I’m going to try to run this. And the first thing you’ll see is it’s going to ask me for authorization. Because BigQuery requires authorization from the user to use. And so I’m going to say, yes. I would like this application to be able to read my data from BigQuery.

I’m going to grant access. And now I can run the script. So once that authorization step is done, you can run the script. I’m going to run it right now. And you should see– it’s going to take a few seconds to run. IKAI LAN: What you’re going to see is that you’re running the OnOpen method. So the OnOpen is a hook. And if you look at the code in the OnOpen method– let’s scroll up a little bit. What you’re doing is you’re adding a menu item. So now instead of– you didn’t run any functions. You added additional menus to your spreadsheet. That’s a very, very cool feature of Apps Script. I’m pretty sure that you wanted to show us something else. MICHAEL MANOOCHEHRI: Yes, that’s right. Oh, that’s right. I’m sorry about that.

I looked at the wrong function. That’s right. So we’ll be referring to that later. So actually, let’s run the query. Thank you, Ikai. We’re going to run the actual query. So this is going to do what the web UI for BigQuery was doing before, and it’s going to return a raw response. And you can see it here, behind here. This is the raw JSON response, so BigQuery returns results as a JSON object. So what we’re going to do now is we’re going to take this result set. I just wanted to show you this to just sort of give you an idea of what the raw API looks like. We’re going to take this response, and we’re actually going to put it into the Apps Script in a tabular form in the spreadsheet. So I’m going to comment out the method that does that. And we’re going to uncomment this code. Now, this code is actually going to take that response.

And it’s going to format it in a way that will actually put it into the spreadsheet. So basically, just to show you what I’m doing here, I’m just going through the results set, the table rows that have been brought back from BigQuery. And I’m actually going to say, for each of the results, put them into a two-dimensional array, and we’re going to pop that array into the spreadsheet using Apps Script. IKAI LAN: So what’s really cool here is that I’m looking at this code, and I’m seeing that you’re saying query the data. Now, because this is Apps Script, you’ll be able to do things like this. You’ll be able to type BigQuery.jobs. And you’ll see that the code editor auto-completes the code that you want to use. And that’s why when he gets back the query results, if sometimes you don’t remember what the function is called, Michael will type query results. And you’ll hit a dot.

READ  2015 Subaru Crosstrek: How to Connect Bluetooth

And you’ll see, oh, I have get total rows or get schema. And this is all comes for free when you use Google Apps. MICHAEL MANOOCHEHRI: I love this editor. This is one of the best things about Apps Script is the cool editor. It just makes it so easy to build these things. OK, so I just updated, or uncommented that code. And we’re going to run this function again, and we’re not going to see that JSON object pop up in the box. What we’re actually going to see is the spreadsheet populated with the values from that code. So remember, these are the top 10– magic! These are the top 10– I promised I would never run this again because I’m always running this query, but these are the top 10 most revised Wikipedia articles. This is the last time. But it’s funny because the results are really funny.

You’ve got George W Bush followed by the list of wrestling employees. IKAI LAN: It is– wow. I mean, those are things that are constantly in flux, right? MICHAEL MANOOCHEHRI: Yes, exactly. Although, yes. So you can see you can actually drill down and run other queries to see why these are the most revised. Sometimes they’re controversial. Sometimes they’re just a big names, et cetera, et cetera. IKAI LAN: I can’t believe the Wii has been edited that many times. MICHAEL MANOOCHEHRI: I know. That’s kind of hard to believe. Is it really that controversial? And the controversial Britney Spears as well. IKAI LAN: Very controversial. MICHAEL MANOOCHEHRI: OK, so let’s add something else. Now what we want to do is we want to visualize these results.

So I have a function down here which builds a chart. And it takes the data from the spreadsheet and actually makes a bar chart out of it. The visualization functions– you know much more about this than I do. But I find them to be really awesome, like to take this data and be able to build the chart automatically in the spreadsheet, it’s just great. IKAI LAN: And we’ve got some great tutorials online when you search. When you search on Google for Google Apps Script charts tutorial, they’ll teach you the process of building a charts dashboard. But for now, we’re doing a very basic one. MICHAEL MANOOCHEHRI: So this one, this is one thing I wanted to highlight. BigQuery currently supports four data types– integer, floating point, Boolean, and string. And this particular chart would like to have either a number or a string as the values. So what I’m doing here in this code– and this is all on the BigQuery Apps Script tutorial that’s on the Apps Script site. What I’m doing here is I’m just finding anything that is a Boolean or a string, I’m saying, make that a column-type string. Anything that’s an integer or floating point, make that a column-type number.

It’s pretty easy to use. It’s just a way to take the data values coming from BigQuery and turning them into something that the charts method really likes. So I have this ready to go. I’m going to uncomment this part of my RunQuery function that will actually pass the information that you see here in the spreadsheet to that chart function. And this just has dimensions, like the color of the chart, how big the chart is going to be. IKAI LAN: So this is one way of building UIs in Apps Script. It’s called UI service, where you programmatically construct the UIs from various components, and you used composite patterns to build up these complex UIs. And so now, it looks like you’re just building a chart, and you’re setting certain variables, and you’re setting the data sources. MICHAEL MANOOCHEHRI: Exactly.

So let’s save that. I’m going to run this function one more time. And if you go back to the parent chart when this is done, we should see a chart. IKAI LAN: It’s actually running the query again. So it’s not just taking this and generating the chart. It’s running the query again in case the data set is updated. Which it actually hasn’t, but in many cases, it might. MICHAEL MANOOCHEHRI: And you see, I actually have a title here about Shakespeare. That’s because I have another query in there that’s a Shakespeare one. But we can change that in the code right here. That’s just a label, basically. IKAI LAN: Right. Follow the bug. MICHAEL MANOOCHEHRI: That’s right. And actually, we can change that right now. We can say Wikipedia revision. IKAI LAN: Wikipedia revisions. MICHAEL MANOOCHEHRI: Most revised. And that’s it. IKAI LAN: Let’s go ahead, save it, and run the function. And let’s go back to the screen.

You’ll notice that– oop! MICHAEL MANOOCHEHRI: That’s because I went over the free query limit for BigQuery. IKAI LAN: You’ve been running this query all day long. MICHAEL MANOOCHEHRI: I know. It’s true. I have been. IKAI LAN: Well, that kind of took the steam out of our demo there. But you guys all saw, it was a chart. It was a bar chart. And you can build all kinds of charts in App Script. You can use a pie chart. That’s also a very good one. Line chart, they have scatter charts. There are all kinds of charts that are exposed via the App Script charts API. MICHAEL MANOOCHEHRI: And what a lot of people do is actually do time series. So they will group by a time bucket. And that’s a great thing for charts that go over line charts and these kind of things.

IKAI LAN: Do you have an example of something that people like to graph in a time series? MICHAEL MANOOCHEHRI: Oh, Yeah, definitely. I was talking about social games. Think about daily use of something over the life of the game, like how many people are playing over the life of the game, things like that. IKAI LAN: And you would generate this from, say, raw logs data. MICHAEL MANOOCHEHRI: Oh, yeah. This is a common use case for BigQuery. IKAI LAN: So what do people commonly do when they have lots of raw logs that they want to get into BigQuery? MICHAEL MANOOCHEHRI: Do you mean how do you actually load that data in? IKAI LAN: I mean, this is really cool. But I can’t imagine that many people are building dashboards based on Wikipedia hits. MICHAEL MANOOCHEHRI: These are just public data sets for testing, but you’re right.

To get your data in, first you stage, either CSV, and we recently started supporting JSON objects for nested and repeated values. So in your raw source file, stage that data in Google Cloud Storage. And we didn’t have much time to talk about Google Cloud Storage. But basically, it’s binary storage in the cloud. Stage your files there, and then you tell the BigQuery API where those files are. And it will load that data into BigQuery for you to analyze. BigQuery is append only. You don’t have CRUD operations like a standard database. But it’s really a tool for analysis. So once you get that data in, no indexing required once the ingestion job is done. You can start running queries. IKAI LAN: Right, right. You would not be using BigQuery, for instance, the way you’d be using be an SQL database.

Because logs are very good because unless we’ve got some Arnold Schwarzenegger “Terminator” thing going back on, you’re not going to go back in time and delete logs. You’re not going to be wanting to do that. So you mentioned Google Cloud Storage. Now, Google Cloud Storage also has an API. There are two ways to upload files. There’s a web UI. Actually, there are multiple ways. There’s a command-line tool. And there’s also an API. So what people frequently do is– do people use the API and frequently just push? MICHAEL MANOOCHEHRI: Yeah, people do all kinds of stuff. So they’ll use the API. They’ll use the command-line client and actually build the server-side scripting stuff that pushes it up to Google Cloud Storage and then kicks off a BigQuery ingestion job. BigQuery itself also has a command-line client. So a lot of people use that as well. We also have a lot of partners who do things like data ingestion. So if you go to the BigQuery website at developers.google.com/bigquery, there’s links to all of our partners that do some of these transformation and ETL jobs.

READ  D-League Showcase: Bakersfield Jam @ Sioux Falls Skyforce, 2014-01-05

So there’s a lot of ways to do it. IKAI LAN: And ETL means? MICHAEL MANOOCHEHRI: Extract, Transform, and Load. IKAI LAN: I always have to ask him because I never forget. MICHAEL MANOOCHEHRI: And I always get it confused– IKAI LAN: I never remember. MICHAEL MANOOCHEHRI: –with GTL. IKAI LAN: What’s GTL? MICHAEL MANOOCHEHRI: It means Gym, Tanning, and Laundry. IKAI LAN: Oh, right, right, GTLs. And that’s– MICHAEL MANOOCHEHRI: That show. IKAI LAN: –weekend plan? Oh, it’s a show. I didn’t realize. See, I’m so out of touch with the cool people. MICHAEL MANOOCHEHRI: You’re just so deep in the Apps Script world. IKAI LAN: Look at how cool he is. He’s a hipster. Oh, no, I’m sorry. He’s an HTTPster. So that’s all really cool stuff. And I think that when you’re developing, especially in Apps Script, one thing that’s really good to do is first off, get your data.

Get a small data set into BigQuery. Use the command line or web tools to figure out which queries you want to run and what variables you want to be dynamic. And once you’re doing that, when you want to develop a UI, instead of constantly making calls to BigQuery, a very good way of building a UI is to stub out the data first in a spreadsheet. And because this is a spreadsheet, you have a built-in UI for editing data. So you can quickly create a sample data set, figure out the UI that you want to build. And once you’ve got those two pieces working together– they don’t even have to be built by the same person– you can quickly wire them together using the script editor. MICHAEL MANOOCHEHRI: Definitely. I actually do that all the time. That’s the way I use Apps Script as well. IKAI LAN: I mean, you could work with live data. But there’s always going to be a delay.

Now, this is a relatively fast query. But there are some queries that will take longer. MICHAEL MANOOCHEHRI: BigQuery generally returns results on the order of seconds. But if you have a lot of data and you’re running a very complex query, it’s not going to take 2 seconds. It might take 10 or 20, something like that. IKAI LAN: And you don’t want to have to wait that every time you just want to make a change to how the chart looks or which chart you want to use. You want to be able to very quickly get very fast turnaround. MICHAEL MANOOCHEHRI: So the other thing I wanted to mention is, like I said earlier, BigQuery is a premium product, but you get a free quota. If you want to put your own data in, you have to flip on billing. But we do have these public data sets that you can test with and kind of get a handle of what the data will look like. And the data sets kind of look like some of the log data sets you mentioned that you use on your own. But to get started, it’s really just a matter of going to the BigQuery website, signing up, and then you’re ready to go.

IKAI LAN: Right. And once you get that going and you have connected to Apps Script, you get all the power of App Script. You get to use things like Google Calendar. You could publish the results to Google Doc. You can email the results out every day as a nightly report. There’s just a lot of things that you could do. MICHAEL MANOOCHEHRI: Yeah, actually, the Cron functionality with Apps Script is really useful. IKAI LAN: Right, right. And Cron is– for those people not that used to Unix, it’s to schedule tasks and clock triggers. To use a clock trigger, you would say something like, every night at 4:00 AM, do this. Do this BigQuery thing, generate this chart, and email it out to people. MICHAEL MANOOCHEHRI: That’s true. A lot of people that are using a spreadsheet functionality, they might be analysts. They might be making reports. But they’re not people that would write SQL or be able to kind of develop these kind of applications. So using the scheduler task, you can actually say, run this overnight. Get the results back, and their report is ready to go.

They can actually use it. They can paste it into something else. They can, like you said, email it to somebody, email it to the CEO. There’s lots of cool stuff you can do with very little code just by toggling this or that. IKAI LAN: I’m always emailing the CEO. MICHAEL MANOOCHEHRI: That’s right. IKAI LAN: I’m like, dear Larry. MICHAEL MANOOCHEHRI: Dear Larry. IKAI LAN: Dear Larry. MICHAEL MANOOCHEHRI: I’ve got an idea. IKAI LAN: I have an idea. So we’re just about running out of time. And before we finish this show, I’d like to plug couple of things that you’re doing. So why don’t you tell us what you and the team are up to? MICHAEL MANOOCHEHRI: So tomorrow, I’m going to give a talk about BigQuery, along with Jim Caputo, who’s the engineering lead for BigQuery. We’re going to be at the Strata Conference in the morning. We’re going to give a talk there. So generally check us out if you’re there.

Also, our buddy Ilya Grigorik, who’s on the Chrome team, and another buddy of ours, Brian from GitHub, are going to talk about how they use BigQuery to analyze GitHub data, which is very cool. It’s going to be very funny. So if you’re at Strata, you should check those out. My partner in crime, Ryan Boyd, is going to be at New York GDG tonight. And we’re going to go to Boston on Thursday and hang out with the Boston GDG at the upcoming hack/reduce Hackerspace. So that’s going to be great. IKAI LAN: And I’m also going to be at the GDG. But I don’t have– MICHAEL MANOOCHEHRI: That’s right. IKAI LAN: I’m not adding any value to that. I’m just in a completely supporting role. MICHAEL MANOOCHEHRI: Ikai, you’re always adding value. IKAI LAN: No, that’s not true. But if you’re coming to GDG, that’s what you’re going to hear about. You’re going to hear some more about BigQuery.

And if you’re in Boston, definitely stop by– what did you call it? Hack– MICHAEL MANOOCHEHRI: Yeah, it’s an upcoming Hackerspace. But they’re actually hosting the Boston GDG this week. IKAI LAN: Right. OK, so they’re hosting the Boston GDG. And Strata, I think that you already have to have tickets to be able to attend that. MICHAEL MANOOCHEHRI: That’s right. If you’re there, check it out. And otherwise, you’ll catch us at a GDG or catch us on GDL in the future. IKAI LAN: And of course, if you’ve been watching this live show, we will be posting a recording of this show online. So you’ll be able to watch it as many times you want. MICHAEL MANOOCHEHRI: Definitely. I’m sure you’re going to want to. IKAI LAN: People will. People will.

People will. So thank you guys very much again. I want to thank Michael Manoochehri for coming out and joining us today. MICHAEL MANOOCHEHRI: Thanks for having me, Ikai. IKAI LAN: No problem. Thank you for coming out. Come and join us any time. MICHAEL MANOOCHEHRI: Cool. Sounds great. IKAI LAN: Any time. Any time you’re in New York, we’ll have a desk for you. MICHAEL MANOOCHEHRI: Awesome. Thank you. IKAI LAN: Thank you guys for watching. And we’ll see you guys on Thursday. [MUSIC PLAYING] .