Narges,

INSERTS/UPDATES/DELETES will be forwarded to primary nodes based on the
value of primary keys you pass into queries. Ignite maps a primary key to a
partition and, finally, to a primary node that holds that partition. All
this happens transparently in Ignite. You don't need to do anything except
for sending those SQL commands.

As for SELECTS, most of them will be broadcasted to your server nodes
unless Ignite can pre-select a sub-set of target nodes a query needs to be
executed on. This optimization always takes place for simple queries when
you try to get records based on the value of a primary key, such as "SELECT
* FROM Table WHERE primaryKeyColumn = 2".

-
Denis


On Wed, Jun 17, 2020 at 12:43 PM narges saleh <snarges...@gmail.com> wrote:

> Thanks Denis. Will watch the video.
> One more question, related to SQL execution. If I issue a SQL from a
> client, how would ignite know which node to run the SQL query on? I assume
> the SQL is parsed on the server nodes, and I will still need to direct the
> SQL to be executed on the right server node (assuming that all the data is
> collocated on a single node). Am I right?
>
> On Wed, Jun 17, 2020 at 2:26 PM Denis Magda <dma...@apache.org> wrote:
>
>> The collocated flag is an extra optimization hint for SQL queries with
>> GROUP BYs. The parameter requests to group records locally on the nodes
>> that participated in the query execution. For instance, if your application
>> sends a query with GROUP BY to a couple of server nodes, then the nodes
>> will group their portions of the result sets locally not making that the
>> burden of the application that merges/reduces the result sets into one. The
>> description of this parameter here should be helpful as well:
>> https://apacheignite-sql.readme.io/docs/jdbc-driver#parameters
>>
>> <https://apacheignite-sql.readme.io/docs/jdbc-driver#parameters>
>>>
>>> Should I assume that if the table is defined with affinity set, then
>>> compute collocation, including sql execution will happen automatically?
>>
>>
>> That's right. You just need to set up the affinity keys and Ignite will
>> take care of the rest. Btw, you might be interested in this SQL webinar we
>> delivered recently. The webinar explains our SQL capabilities in detail:
>> https://www.youtube.com/watch?v=eYV-tNLzIts
>>
>> -
>> Denis
>>
>>
>> On Wed, Jun 17, 2020 at 11:28 AM narges saleh <snarges...@gmail.com>
>> wrote:
>>
>>> Then can you please explain what the option collocated=true for JDBC url
>>> is for?
>>> Should I assume that if the table is defined with affinity set, then
>>> compute collocation, including sql execution will happen automatically?
>>> I am sorry if this is just a basic question.
>>>
>>> On Wed, Jun 17, 2020 at 12:57 PM Denis Magda <dma...@apache.org> wrote:
>>>
>>>> If the data is already co-located you don't need to pass in any other
>>>> parameters.
>>>>
>>>> -
>>>> Denis
>>>>
>>>>
>>>> On Wed, Jun 17, 2020 at 10:13 AM narges saleh <snarges...@gmail.com>
>>>> wrote:
>>>>
>>>>> Hi Denis. The tables are defined with affinity keys specified. What I
>>>>> am asking whether to set the collection option when I insert or query the
>>>>> data via SQL line.
>>>>>
>>>>> thanks
>>>>>
>>>>> On Wed, Jun 17, 2020 at 11:39 AM Denis Magda <dma...@apache.org>
>>>>> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> You need to pass the required parameters to the JDBC driver's
>>>>>> connection URL:
>>>>>> https://apacheignite-sql.readme.io/docs/jdbc-driver#parameters
>>>>>>
>>>>>> However, I'm not quite sure what you mean under the "collocation" in
>>>>>> the following context. All your data needs to be co-located beforehand
>>>>>> (ensure you have affinity keys configured) and then just send your 
>>>>>> queries
>>>>>> with joins with no additional connection parameters.
>>>>>>
>>>>>> -
>>>>>> Denis
>>>>>>
>>>>>>
>>>>>> On Wed, Jun 17, 2020 at 9:33 AM narges saleh <snarges...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi All,
>>>>>>>
>>>>>>> Is collocation enforced when SQL is issues in sqline command line or
>>>>>>> do I need to give the option when I start sqlline?
>>>>>>>
>>>>>>> thanks.
>>>>>>>
>>>>>>

Reply via email to