ASA: Encountered error when communicating with EventHub: Exceeded the maximum number of allowed receivers per partition in a consumer group which is 5

Chiu I Keanu Leung 0 Reputation points
2023-09-12T02:28:07.35+00:00

https://stackoverflow.com/questions/74305395/exceeded-the-maximum-number-of-allowed-receivers-azure-stream-analytics-job-con
I have read and followed the suggestion from the link above but the ASA still throws me the same error so I made some modifications and it works, at least.

I create multiple inputs at Stream Analytics. each with a different consumer group.

WITH 
pj001J0000 AS    
(
        SELECT CAST(project AS nvarchar(max)) AS Project,CAST(device AS nvarchar(max)) AS Device,CAST(time AS   datetime) AS Time FROM [iothub-pj001-grpA] WHERE Project = 'J0000'
),
pj001J0001 AS      
(   
        SELECT CAST(project AS nvarchar(max)) AS Project,CAST(device AS nvarchar(max)) AS Device,CAST(time AS   datetime) AS Time FROM [iothub-pj001-grpA] WHERE Project = 'J0001'
),
pj001J0002 AS
(        
        SELECT CAST(project AS nvarchar(max)) AS Project,CAST(device AS nvarchar(max)) AS Device,CAST(time AS   datetime) AS Time FROM [iothub-pj001-grpA] WHERE Project = 'J0002'  
),
pj001J0003 AS        
(
        SELECT CAST(project AS nvarchar(max)) AS Project,CAST(device AS nvarchar(max)) AS Device,CAST(time AS   datetime) AS Time FROM [iothub-pj001-grpA] WHERE Project = 'J0003'  
),
pj001J0004 AS        
(
        SELECT CAST(project AS nvarchar(max)) AS Project,CAST(device AS nvarchar(max)) AS Device,CAST(time AS   datetime) AS Time FROM [iothub-pj001-grpA] WHERE Project = 'J0004'
),  
pj001J0005 AS          
(
          SELECT CAST(project AS nvarchar(max)) AS Project,CAST(device AS nvarchar(max)) AS Device,CAST(time AS   datetime) AS Time FROM [iothub-pj001-grpB] WHERE Project = 'J0005'  
)


SELECT * INTO [sql-pj001-J0000] FROM pj001J0000;
SELECT * INTO [sql-pj001-J0001] FROM pj001J0001;
SELECT * INTO [sql-pj001-J0002] FROM pj001J0002;
SELECT * INTO [sql-pj001-J0003] FROM pj001J0003;
SELECT * INTO [sql-pj001-J0004] FROM pj001J0004;
SELECT * INTO [sql-pj001-J0005] FROM pj001J0005;

Could anyone help giving me some advices? Thanks.

Azure Stream Analytics
Azure Stream Analytics
An Azure real-time analytics service designed for mission-critical workloads.
342 questions
{count} votes

1 answer

Sort by: Most helpful
  1. AnnuKumari-MSFT 31,896 Reputation points Microsoft Employee
    2023-09-12T17:36:01.67+00:00

    Hi Chiu I Keanu Leung ,

    Welcome to Microsoft Q&A platform and thanks for posting your query here.

    It seems like you've created multiple inputs in Azure Stream Analytics (ASA) for different consumer groups, and you're using a SQL query to filter and route data from an IoT hub into different outputs and looking for suggestion on improvement.

    You can optimize the query for readability . Instead of creating multiple CTEs (Common Table Expressions) for each 'Project,' you can simplify your query by using a single query with conditional filtering. Here's an example:

    SELECT
        CAST(project AS nvarchar(max)) AS Project,
        CAST(device AS nvarchar(max)) AS Device,
        CAST(time AS datetime) AS Time
    INTO [sql-pj001-J0000]
    FROM [iothub-pj001-grpA]
    WHERE Project IN ('J0000', 'J0001', 'J0002', 'J0003', 'J0004');
    
    SELECT
        CAST(project AS nvarchar(max)) AS Project,
        CAST(device AS nvarchar(max)) AS Device,
        CAST(time AS datetime) AS Time
    INTO [sql-pj001-J0005]
    FROM [iothub-pj001-grpB]
    WHERE Project = 'J0005';
    

    Hope it helps. Thankyou