If tutorials available on this website are helpful for you, please whitelist this website in your ad blocker😭 or Donate to help us ❤️ pay for the web hosting to keep the website running.
एक virtual warehouse , जिसे warehouse भी कहते हैं , Snowflake में compute resources का एक cluster
है। virtual warehouse का हो सकता है।
Standard
Snowpark-optimized
एक virtual warehouse
नीचे दिए गए operations को पूरा करने के लिए resources जैसे CPU, memory, और temporary storage provide कराता है।
1. SQL SELECT
statements को Execute करने के लिए जिन्हे compute resources की जरूरत होती है।
2. DML operations Perform करने के लिए जैसे :
Updating rows in tables (DELETE , INSERT , UPDATE).
Loading data into tables (COPY INTO <table>).
Unloading data from tables (COPY INTO <location>).
●●●
Size specify करता है कि एक cluster में कितने compute resources warehouse में available हैं। Snowflake में 10 warehouse size defined हैं :
Warehouse Size | Credits / Hour | Credits / Second | Notes |
X-Small | 1 | 0.0003 | Default size for warehouses created in Snowsight and using CREATE WAREHOUSE |
Small | 2 | 0.0006 | |
Medium | 4 | 0.0011 | |
Large | 8 | 0.0022 | |
X-Large | 16 | 0.0044 | Default size for warehouses created using the Classic Console. |
2X-Large | 32 | 0.0089 | |
3X-Large | 64 | 0.0178 | |
4X-Large | 128 | 0.0356 | |
5X-Large | 256 | 0.0711 | Generally available in Amazon Web Services (AWS) and Microsoft Azure regions, and in preview in US Government regions. |
6X-Large | 512 | 0.1422 | Generally available in Amazon Web Services (AWS) and Microsoft Azure regions, and in preview in US Government regions. |
●●●
By default, एक virtual warehouse में एक ही cluster
compute resources होता है जो queries को execute करने के लिए available होते होता है। जब queries warehouse में submit की जाती है तो warehouse हर query के लिए resources allocate करता है और queries को execute करना शुरू करता है।
अगर warehouse में सभी queries को execute करने के लिए sufficient resources available नहीं होते हैं तो Snowflake additional queries को queue
में डालता है जब तक आवश्यक resources available नहीं हो जाते हैं।
Multi-cluster warehouses के साथ , Snowflake को load के according और भी clusters statically or dynamically रूप से हो allocate हो सकते हैं। ताकि उपलब्ध compute resources का pool बढ़ा सकें।
एक multi-cluster warehouse को निम्नलिखित properties के bases पर define किया जाता है।
Maximum number of clusters, greater than 1 (up to 10).
Minimum number of clusters, equal to or less than the maximum (up to 10).
●●●
warehouse को आप SnowSQL या Snowsight से create कर सकते हैं। हालाँकि हम SnowSQL से warehouse के सभी examples देखेंगे।
Syntax
CREATE [ OR REPLACE ] WAREHOUSE [ IF NOT EXISTS ] <name> [ [ WITH ] objectProperties ] [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ] [ objectParams ]
यहाँ पर objectProperties
की values
नीचे दी गयी हैं।
objectProperties ::= WAREHOUSE_TYPE = { STANDARD | 'SNOWPARK-OPTIMIZED' } WAREHOUSE_SIZE = { XSMALL | SMALL | MEDIUM | LARGE | XLARGE | XXLARGE | XXXLARGE | X4LARGE | X5LARGE | X6LARGE } MAX_CLUSTER_COUNT = <num> MIN_CLUSTER_COUNT = <num> SCALING_POLICY = { STANDARD | ECONOMY } AUTO_SUSPEND = { <num> | NULL } AUTO_RESUME = { TRUE | FALSE } INITIALLY_SUSPENDED = { TRUE | FALSE } RESOURCE_MONITOR = <monitor_name> COMMENT = '<string_literal>' ENABLE_QUERY_ACCELERATION = { TRUE | FALSE } QUERY_ACCELERATION_MAX_SCALE_FACTOR = <num>
और objectParams की values कुछ इस तरह से हैं ।
objectParams ::= MAX_CONCURRENCY_LEVEL = <num> STATEMENT_QUEUED_TIMEOUT_IN_SECONDS = <num> STATEMENT_TIMEOUT_IN_SECONDS = <num>
कैसा भी warehouse बनाने में maximum इन्ही configurations का use किया जाता हैं। इन configurations को follow करके आप अपने warehouse को fully scalable बना सकते हैं।
●●●
अब इन सभी options के बारे में देख लेते हैं कि इन्हे की और कैसे use करते हैं।
type वही हैं जिन्हे आपने अभी ऊपर पढ़ा , Standard
& Snowpark-optimized
. by default Standard ही होता है।
Standard Warehouse : Standard warehouse compute resources को provide करता है जो कि standard SQL queries को execute करने के लिए useful होता है।
Snowpark-Optimized Warehouse : Snowpark-optimized warehouse Snowpark से लेकर C++ UDFs और External Functions जैसे advanced features के लिए optimized compute resources को provide कराता है।
Snowpark एक programming modal है जो Snowflake के unstructured data और semi-structured data के साथ interact करने के लिए use होता है।
इसमें हम warehouse का size define करते हैं। size का मतलब है cluster द्वारा provide किये गए compute resources . By default XSMALL
set होता है।
यह parameter warehouse में minimum कितने clusters allocate किये जा सकते हैं , ये warehouse में हमेशा available रहेंगे और जब भी need होगी , इनका use किया जायेगा। अगर workload बढ़ जाता है या resources की demand बढ़ती है तो minimum cluster count के according additional clusters automatically allocate किये जाते हैं।
By default इसकी value 1 रहती ही है।
यह parameter warehouse में maximum कितने clusters allocate किये जा सकते हैं , यह warehouse की scaling को control करता है।
Maximum cluster count के according, warehouse में allocate किये गए clusters की संख्या को control किया जा सकता है और ज्यादा load होने पर extra resources को allocate होते हैं और load काम होने पर automatically cluster remove हो जाते हैं।
MAX_CLUSTER_COUNT
की value MIN_CLUSTER_COUNT
से ज्यादा या बराबर होती है।
MAX_CLUSTER_COUNT और MIN_CLUSTER_COUNT की value अलग - अलग set करके आप warehouse को auto scalable बनाते हैं। लेकिन जब इनकी value same होती है तो warehouse Maximized mode में होता हैं।
यह parameter warehouse की scaling policy
को define करता है , या तो "STANDARD
" ya "ECONOMY
" mode में।
STANDARD
mode में, warehouse resources dynamically workload के according adjust होते हैं। जबकि ECONOMY
mode में, resources काम होती हैं लेकिन cost भी कम होती है।
यह parameter warehouse को automatically suspend करने के time को define करता है। Suppose आपने 200 Seconds define किये तो 200 Seconds तक अगर कोई query run की गयी तो वो warehouse automatically stop/suspend हो जायगा।
Cost saving में यह option काफी helpful है।
यह parameter warehouse को automatically resume/start करता है। इसकी value TRUE
होने पर warehouse automatically resume होगा जैसे ही कोई query execute होने के लिए submit की जाती है।
By default हमें manually alter warehouse
query run करके warehouse को RESUME करना पड़ता है।
यह parameter warehouse को starting में suspend करने के लिए use किया जाता है। TRUE
होने पर पर warehouse create होने के बाद suspend ही रहता है।
यह parameter warehouse के लिए specific resource monitor को specify करता है जो resource usage को monitor करता है।
ये parameter optional होता है और warehouse के बारे में एक description की तरह use किया जाता है।
ये parameter warehouse में query acceleration को enable या disable करने के use होता है। TRUE
होने पर query acceleration का use किया जाता है।
ये parameter query acceleration का maximum scale factor को define करता है , जो query performance को optimize करने में help करता है।
ये parameter warehouse के maximum concurrency level को define करता है , यानी एक time में कितने queries simultaneously execute की जा सकती हैं।
अधिक concurrency level से warehouse के time के साथ - साथ resource utilization भी बढ़ता है , लेकिन इससे performance पर भी effect सकता है।
ये parameter warehouse में statement को queue में रखने के समय को define करता है। अगर एक statement queue में अधिक time तक wait करता है तो to ये timeout हो जायगा और statement को execute करने के लिए reject कर दिया जायेगा।
इससे warehouse के resource utilization को optimize किया जा सकता है और deadlock situations से भी बचा जा सकता है।
यह parameter warehouse में एक statement के execution का time limit को define करता है। अगर एक statement का execution specified time से अधिक समय तक चलता है तो यह timeout होगा और statement को cancel कर दिया जायगा।
इससे warehouse के resources का ठीक से use किया जा सकता है और long-running queries से बचा जा सकता है।
●●●
Loading ...