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 .