For this tutorial, I’m going to assume you’re running in a unix environment. If you’re having trouble building on Windows, try asking the dev community (email@example.com). You can also find a complete guide here in our documentation.
If you’re going to build Quickstep, you’ll first need to clone it from Github and initialize the submodules
Next, you’ll need to generate Makefiles using CMake, a cross-platform build tool that’s popular for building c++ projects. You’ll need a version at least as new as 2.8.6. (You can check with
cmake -v). If you have a later version, try generating the Makefiles like
Note the weird flag
-DCMAKE_BUILD_TYPE=Debug. This is telling cmake to use, you guessed it, a debug configuration for the build. This automatically includes flags in the generated Makefiles to include debug symbols and turn on optional checks and log statements in the code. There’s tons more flags, but only a few which we commonly use. Mostly I just change the
CMAKE_C_COMPILER. These flags control the compiler and I prefer clang++ and clang.
If cmake ran successfully you can now build quickstep. If it didn’t run successfully, then don’t worry, we’re always finding small issues. Like, on one of my linux test machines, I always have to delete lines related to
gflag in the
third_party/glog/CMakeLists.txt file because of a misconfiguration on that machine. However, on my mac, cmake runs fine.
If you’re having trouble, one solution might be to install some dependencies. If you’re running Ubuntu, this might help:
If that still doesn’t help, email the dev list. Seriously, we’re nice.
Assuming you’ve generated the Makefiles, you can now build quickstep and all of the unit tests. This will run faster if we just build quickstep.
Once quickstep builds, you should now be able to run your first query. You’ll need to tell quickstep where to store its files.
This will initialize a directory called
store where quickstep will persist data. If this ran successfully, then you should be seeing the command line prompt. For more information on what flags are available, enter
Now we can run our first query! Let’s create a bunch of records and then aggregate over them.
Of course, that query is meaningless but it should give you some idea of the sophistication of the SQL interface. This post is meant to give a taste of how I would get started with Quickstep. If it’s not enough or you want more information, we’ve been really good about updating our documentation. Checkout our README and DEV_GUIDE for more pointers!