som utvecklare definierar du alltid kolumnerna och deras datatyper i fliken ’kolumn’ i varje steg.
vet du, du har ett annat sätt att definiera andra kolumner än fliken Kolumner?
scheman är ett alternativt sätt att ange kolumndefinitioner för data som används av parallella jobb.
som du vet, tar de flesta parallella jobbstadier som standard sina metadata från fliken Kolumner, som innehåller tabelldefinitioner, kompletterade, vid behov med formatinformation från fliken Format.
för vissa steg kan du ange en egenskap som får scenen att ta metadata från den angivna schemafilen istället.
Läs och: skillnad mellan länksortering och sorteringsstadium
vissa steg tillåter oss också att ange ett partiellt schema. Detta gör att du bara kan definiera de kolumner som ett visst steg behandlar och ignorera resten av kolumnerna.
schemafilen är en vanlig textfil. Och det är att föredra att spara det med’.schema ’ förlängning, så att du kan identifiera dem lätt i filsystemet.
Schema filformat:
ett schema innehåller en post (eller rad) definition. Detta beskriver varje kolumn (eller fält) som kommer att påträffas i posten, vilket ger kolumnnamn och datatyp. Följande är ett exempel på postschema:
namn: sträng;
adress:nullable string;
value1: int32;
value2: int32;
dateofbirth: date)
radbrytningarna finns för att underlätta läsning, om du vill kan du utelämna dessa om du definierade ett partiellt schema, till exempel
post (namn: string; value1: int32; dateofbirth:date)
är ett giltigt schema.
formatet för varje rad som beskriver en kolumn är:
column_name:datatype;
kolumnnamn: detta är namnet som identifierar kolumnen. Namnen måste börja med en bokstav eller ett understreck ( _ ) och kan endast innehålla alfanumeriska tecken eller understreck. Namnet är inte skiftlägeskänsligt.
nullability: du kan valfritt ange om en kolumn får innehålla ett null-värde, eller om detta skulle ses som ogiltigt. Om kolumnen kan vara null, sätt in ordet ’nullable’. Som standard är kolumner inte ogiltiga.
du kan också inkludera ’nullable’ på postnivå för att ange att alla kolumner är ogiltiga och åsidosätta sedan inställningen för enskilda kolumner genom att ange ’not nullable’. Till exempel:
namn: inte nullable sträng;
value1: int32;
dateofbirth: datum)
datatyp: Detta är datatypen för kolumnen. Detta använder de interna datatyperna men inte SQL-datatyper som används på Kolumnflikar i scenredigerare.
du kan inkludera kommentarer i schemadefinitionsfiler. En kommentar startas av en dubbel snedstreck//, och slutade med en ny rad.
du bör alltid se till att Runtime-Kolumnutbredning är aktiverat Om du vill använda schemafiler för att definiera kolumnmetadata.
Läs också: hur FÄLTFUNKTIONEN fungerar i DataStage?