Re: Flink SQL exception on using cte

2023-10-20 Thread elakiya udhayanan
Thanks Robin and Aniket for the suggestions you have given.

Will try and update on the same.

Thanks,
Elakiya

On Fri, Oct 20, 2023 at 2:34 AM Robin Moffatt  wrote:

> CTEs are supported, you can see an example in the docs [1] [2]. In the
> latter doc, it also says
>
> > CTEs are supported in Views, CTAS and INSERT statement
>
> So I'm just guessing here, but your SQL doesn't look right.
> The CTE needs to return a column called `pod`, and the `FROM` clause for
> the `SELECT` should be after it, not before the `INSERT`.
>
> i.e. something like this instead:
>
> WITH p1 AS ( SELECT empId AS pod FROM employee )
> INSERT INTO correlate
> SELECT pod FROM p1;
>
>
> Hope that helps,
>
> Robin
>
> [1]:
> https://nightlies.apache.org/flink/flink-docs-release-1.17/docs/dev/table/sql/queries/with/
> [2]:
> https://nightlies.apache.org/flink/flink-docs-release-1.17/docs/dev/table/hive-compatibility/hive-dialect/queries/cte/
>
> On Thu, 19 Oct 2023 at 08:05, elakiya udhayanan 
> wrote:
>
>> Hi Team,
>>
>> I have a Flink job which uses the upsert-kafka connector to consume the
>> events from two different Kafka topics (confluent avro serialized) and
>> write them to two different tables (in Flink's memory using the Flink's SQL
>> DDL statements).
>>
>> I want to correlate them using the SQL join statements and for this I am
>> trying to use the cte expressions like below (sample): But getting
>> exception as below
>>
>>  *org.apache.flink.table.api.SqlParserException: SQL parse failed.
>> Incorrect syntax near the keyword 'INSERT'*
>>
>> WITH p1 AS ( SELECT empId FROM employee )
>>  FROM p1
>> INSERT INTO correlate
>> SELECT pod;
>>
>> Please let me know if queries with cte are supported in Apache Flink.
>>
>> Thanks,
>> Elakiya
>>
>


Re: Flink SQL exception on using cte

2023-10-19 Thread Robin Moffatt
CTEs are supported, you can see an example in the docs [1] [2]. In the
latter doc, it also says

> CTEs are supported in Views, CTAS and INSERT statement

So I'm just guessing here, but your SQL doesn't look right.
The CTE needs to return a column called `pod`, and the `FROM` clause for
the `SELECT` should be after it, not before the `INSERT`.

i.e. something like this instead:

WITH p1 AS ( SELECT empId AS pod FROM employee )
INSERT INTO correlate
SELECT pod FROM p1;


Hope that helps,

Robin

[1]:
https://nightlies.apache.org/flink/flink-docs-release-1.17/docs/dev/table/sql/queries/with/
[2]:
https://nightlies.apache.org/flink/flink-docs-release-1.17/docs/dev/table/hive-compatibility/hive-dialect/queries/cte/

On Thu, 19 Oct 2023 at 08:05, elakiya udhayanan  wrote:

> Hi Team,
>
> I have a Flink job which uses the upsert-kafka connector to consume the
> events from two different Kafka topics (confluent avro serialized) and
> write them to two different tables (in Flink's memory using the Flink's SQL
> DDL statements).
>
> I want to correlate them using the SQL join statements and for this I am
> trying to use the cte expressions like below (sample): But getting
> exception as below
>
>  *org.apache.flink.table.api.SqlParserException: SQL parse failed.
> Incorrect syntax near the keyword 'INSERT'*
>
> WITH p1 AS ( SELECT empId FROM employee )
>  FROM p1
> INSERT INTO correlate
> SELECT pod;
>
> Please let me know if queries with cte are supported in Apache Flink.
>
> Thanks,
> Elakiya
>


RE: Flink SQL exception on using cte

2023-10-19 Thread Aniket Sule
Hello,
I have been able to use queries with cte in this syntax –
INSERT INTO t1
  WITH cte1 AS (SELECT
   ),
 cte2 AS (SELECT
   )
   (SELECT
  *
  FROM
  cte1 AS a, cte2 as b .
  );

Hope this helps you.

Regards,
Aniket Sule

From: elakiya udhayanan 
Sent: Thursday, October 19, 2023 3:04 AM
To: user@flink.apache.org
Subject: Flink SQL exception on using cte

CAUTION:External email. Do not click or open attachments unless you know and 
trust the sender.

Hi Team,

I have a Flink job which uses the upsert-kafka connector to consume the events 
from two different Kafka topics (confluent avro serialized) and write them to 
two different tables (in Flink's memory using the Flink's SQL DDL statements).

I want to correlate them using the SQL join statements and for this I am trying 
to use the cte expressions like below (sample): But getting  exception as below

 org.apache.flink.table.api.SqlParserException: SQL parse failed. Incorrect 
syntax near the keyword 'INSERT'


WITH p1 AS ( SELECT empId FROM employee )

 FROM p1

INSERT INTO correlate

SELECT pod;
Please let me know if queries with cte are supported in Apache Flink.

Thanks,
Elakiya
Caution: External email. Do not click or open attachments unless you know and 
trust the sender.


Flink SQL exception on using cte

2023-10-19 Thread elakiya udhayanan
Hi Team,

I have a Flink job which uses the upsert-kafka connector to consume the
events from two different Kafka topics (confluent avro serialized) and
write them to two different tables (in Flink's memory using the Flink's SQL
DDL statements).

I want to correlate them using the SQL join statements and for this I am
trying to use the cte expressions like below (sample): But getting
exception as below

 *org.apache.flink.table.api.SqlParserException: SQL parse failed.
Incorrect syntax near the keyword 'INSERT'*

WITH p1 AS ( SELECT empId FROM employee )
 FROM p1
INSERT INTO correlate
SELECT pod;

Please let me know if queries with cte are supported in Apache Flink.

Thanks,
Elakiya