1. A method comprising: by one or more computing devices, receiving a query request for processing data of a data table partitioned into a plurality of column chunks distributed individually across a plurality of servers, wherein: each column of the table is independently partitioned into one or more of the plurality of column chunks, such that a first column chunk resulted from partitioning a first column of the table and a second column chunk resulted from partitioning a second column of the table are partially but not completely row-wise aligned; and the data referenced by the query request are contained in one or more of the plurality of column chunks; determining a hierarchy of servers from the plurality of servers for performing execution steps to process the query request, wherein: the hierarchy comprises a plurality of levels, each one of the levels comprises one or more of the servers, and the servers at a first one of the levels comprise one or more of the servers at where the column chunks that contain the data referenced by the query request are stored; transforming the query request to specify execution steps to be performed by the hierarchy of servers; and performing the execution steps of the transformed query request by the hierarchy of servers.