Mik azok az SQL Warehouse-munkamenetek?

Az SQL Warehouse-munkamenetek lehetővé teszik változók definiálására, ideiglenes nézetek létrehozására és állapotváltozások karbantartására több lekérdezési futtatás során. A munkamenetek segítségével iteratív módon hozhat létre SQL-logikát anélkül, hogy az összes utasítást egyszerre kellene futtatnia.

A munkameneteket az alábbi környezetekben használhatja, ha SQL-raktárhoz van csatolva:

Példa használati esetre

A munkamenetek lehetővé teszik az utasítások egyenkénti futtatását a megosztott állapot fenntartása közben. Deklarálhat például egy változót, létrehozhat egy ideiglenes nézetet, amely ezt a változót használja, majd külön kérdezheti le a nézetet.

Az alábbi példa ezt a munkafolyamatot mutatja be:

-- Statement 1: Declare a variable
DECLARE VARIABLE row_limit = 10;

-- Statement 2: Create a temporary view using the variable
CREATE OR REPLACE TEMPORARY VIEW filtered_data AS
SELECT
  *
FROM
  main.default.sales_data
LIMIT row_limit;

-- Statement 3: Query the temporary view
SELECT
  *
FROM
  filtered_data;

A munkamenetekkel az egyes utasításokat egyenként futtathatja. A változó és az ideiglenes nézet továbbra is elérhető marad, így az összes korábbi utasítás ismételt futtatása nélkül is iterálhat a lekérdezéseken.

A munkamenetek működése

Munkamenet akkor jön létre, amikor egy felhasználó lekérdezést futtat egy SQL Warehouse-on. A munkamenetek mindaddig aktívak maradnak, amíg egy parancs nyolc óránként legalább egyszer fut. A munkamenetek akkor is megmaradnak, ha a raktár leáll vagy újraindul.

Egy munkamenet nyolc órányi inaktivitás után lejár.

Megosztott munkamenet állapota

Minden parancs ugyanazon a munkameneten belül fut, és az alábbiakat osztja meg:

Munkamenet hatóköre és együttműködése

A munkamenetek a lekérdezési objektumhoz (lekérdezéshez, jegyzetfüzethez vagy fájlhoz) és az adott SQL-raktárhoz is kapcsolódnak. Az objektumhoz és a raktárkapcsolathoz való hozzáférést megosztó összes felhasználó ugyanazt a munkamenetet használja.

Például:

  • Az A felhasználó egy ideiglenes nézetet határoz meg az 1. lekérdezésben, miközben csatlakozik az X raktárhoz.
  • A B felhasználó futtathat egy SQL-parancsot az 1. lekérdezésben az X raktáron, amely ugyanarra az ideiglenes nézetre hivatkozik.
  • Ha az 1. lekérdezést egy másik raktárhoz csatolták újra, a rendszer létrehoz egy új munkamenetet a saját izolált állapotával.

Ez az együttműködési viselkedés lehetővé teszi a csapatok számára, hogy közösen dolgozzanak a megosztott lekérdezések fejlesztésén, de azt is jelenti, hogy az egyik felhasználó által végrehajtott módosítások az azonos munkamenetet használó összes többi felhasználót érintik.

További erőforrások