Använda schemaläggarpooler för flera strömningsarbetsbelastningar

Om du vill aktivera flera direktuppspelningsfrågor för att köra jobb samtidigt i ett delat kluster kan du konfigurera frågor så att de körs i separata schemaläggningspooler.

Observera

Du kan inte ange trådpooler när du arbetar med Unity Catalog-objekt.

Hur fungerar schemaläggarpooler?

Som standard startas alla frågor i en notebook-fil som körs i samma rättvis schemaläggningspool. Jobb som genereras av utlösare från alla strömningsfrågor i en notebook-fil körs en efter en i först in- och ut-ordning (FIFO). Detta kan orsaka onödiga fördröjningar i frågorna eftersom de inte delar klusterresurserna effektivt.

Med Scheduler-pooler kan du deklarera vilka structured streaming-frågor som delar beräkningsresurser.

I följande exempel tilldelas query1 till en dedikerad pool, medan query2 och query3 delar en schemaläggarpool.

# Run streaming query1 in scheduler pool1
spark.sparkContext.setLocalProperty("spark.scheduler.pool", "pool1")
df.writeStream.queryName("query1").format("delta").start(path1)

# Run streaming query2 in scheduler pool2
spark.sparkContext.setLocalProperty("spark.scheduler.pool", "pool2")
df.writeStream.queryName("query2").format("delta").start(path2)

# Run streaming query3 in scheduler pool2
spark.sparkContext.setLocalProperty("spark.scheduler.pool", "pool2")
df.writeStream.queryName("query3").format("delta").start(path3)

Observera

Den lokala egenskapskonfigurationen måste finnas i samma notebook-cell där du startar strömningsfrågan.

Mer information finns i dokumentationen för Apache Fair Scheduler .