این موضوع انواع داده های عددی پشتیبانی شده در Snowflake را به همراه قالبهای پشتیبانی شده برای ثابت/تحت اللفظی عددی توصیف می کند.
انواع داده برای شماره های ثابت
Snowflake از انواع داده های زیر برای شماره های ثابت پشتیبانی می کند.
عدد¶
اعداد تا 38 رقم ، با دقت و مقیاس اختیاری:
تعداد کل ارقام مجاز است.
تعداد ارقام مجاز به سمت راست نقطه اعشاری.
به طور پیش فرض ، دقت 38 و مقیاس 0 (یعنی شماره (38 ، 0)) است. توجه داشته باشید که دقیق دامنه مقادیری را که می توان در ستونهای (یا ریخته گری) از یک نوع خاص وارد کرد ، محدود می کند. به عنوان مثال ، مقدار 999 به تعداد (38،0) متناسب است اما به تعداد (2،0) نیست.
حداکثر مقیاس (تعداد رقم در سمت راست نقطه اعشاری) 37 است. اعدادی که کمتر از 38 رقم مهم دارند ، اما حداقل رقم قابل توجه آنها از مکان اعشاری 37 است ، به عنوان مثال 0. 000000000000000000000000000000000012 (1. 2E-39) ، نمی تواندبدون از دست دادن برخی از رقم های دقت نمایش داده می شود.
اگر داده ها با دقت پایین تر به نوع داده دیگری تبدیل شوند ، سپس به فرم با دقت بالاتر برگردید ، داده ها می توانند دقت را از دست دهند. به عنوان مثال ، اگر یک عدد (38،37) را به دو برابر تبدیل کنید ، دقت خود را از دست می دهید (که دارای دقت تقریباً 15 رقم اعشاری است) ، و سپس به شماره بازگشت.
Snowflake همچنین از نوع داده شناور پشتیبانی می کند ، که به طیف وسیع تری از مقادیر اجازه می دهد ، اگرچه با دقت کمتری.
اعشاری ، عددی
مترادف با شماره.
int ، عدد صحیح ، bigint ، smallint ، tinyint ، byteint¶
مترادف با تعداد ، به جز اینکه دقت و مقیاس را نمی توان مشخص کرد (یعنی همیشه به صورت پیش فرض به تعداد (38 ، 0)). بنابراین ، برای همه انواع داده های عدد صحیح ، دامنه مقادیر تمام مقادیر عدد صحیح ا ز-999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 (شمند
نامهای مختلف (TinyInt و غیره) ساده سازی انتقال از سیستم های دیگر و پیشنهاد دامنه مورد انتظار مقادیر برای ستونی از نوع مشخص شده است.
تأثیر دقت و مقیاس در اندازه ذخیره سازی
دقت (تعداد کل رقم) بر ذخیره سازی تأثیر نمی گذارد. به عبارت دیگر ، الزامات ذخیره سازی برای همان تعداد در ستون ها با دقت های مختلف مانند شماره (2،0) و شماره (38،0) یکسان است. برای هر قطعه میکرو ، Snowflake حداقل و حداکثر مقادیر یک ستون معین را تعیین می کند و از آن اطلاعات برای تعیین اندازه ذخیره سازی برای تمام مقادیر آن ستون در پارتیشن استفاده می کند. مثلا:
- اگر یک ستون فقط مقادیر بی ن-128 و 127 را داشته باشد ، هر یک از مقادیر 1 بایت مصرف می کنند (فشرده نشده).
- اگر بزرگترین مقدار در ستون 10000000 باشد ، هر یک از مقادیر 4 بایت مصرف می کنند (فشرده نشده).
با این حال ، مقیاس (تعداد ارقام زیر نقطه اعشاری) تأثیر در ذخیره سازی دارد. به عنوان مثال ، همان مقدار ذخیره شده در یک ستون از شماره (10،5) فضای بیشتری از تعداد (5،0) مصرف می کند. همچنین ، مقادیر پردازش با مقیاس بزرگتر می تواند کمی کندتر باشد و حافظه بیشتری مصرف کند.
برای صرفه جویی در فضا ، Snowflake مقادیر را قبل از نوشتن آنها برای ذخیره سازی فشرده می کند. میزان فشرده سازی به مقادیر داده و سایر عوامل بستگی دارد.
نمونه هایی از انواع داده های ثابت در یک جدول
ايجاد كردن OR جایگزین کردن جدول test_fixed(حدود عدد, شماره 10 عدد(10,1), دسامبر اعشاری(20,2), عددی عددی(30,3), در نظر گرفتن در نظر گرفتن, عدد صحیح عدد صحیح ); نزول جدول test_fixed; +---------+--------------+--------+-------+---------+-------------+------------+-------+------------+---------+ |نام |نوع |نوع |خالی؟|پیش فرض |کلید اصلی |کلید منحصر به فرد |بررسی |بیان |نظر | |---------+--------------+--------+-------+---------+-------------+------------+-------+------------+---------| |num |شماره (38،0) |ستون |y |تهی |n |n |تهی |تهی |تهی | |شماره 10 |شماره (10،1) |ستون |y |تهی |n |n |تهی |تهی |تهی | |دسامبر |شماره (20،2) |ستون |y |تهی |n |n |تهی |تهی |تهی | |عددی |شماره (30،3) |ستون |y |تهی |n |n |تهی |تهی |تهی | |int |شماره (38،0) |ستون |y |تهی |n |n |تهی |تهی |تهی | |عدد صحیح |شماره (38،0) |ستون |y |تهی |n |n |تهی |تهی |تهی | +---------+--------------+--------+-------+---------+-------------+------------+-------+------------+---------+
انواع داده ها برای شماره های نقطه شناور
Snowflake از انواع داده های زیر برای شماره های نقطه شناور پشتیبانی می کند.
float ، float4 ، float8¶
نام های شناور ، float4 و float8 برای سازگاری با سایر سیستم ها است. Snowflake هر سه را به عنوان شماره 64 بیتی شناور با شماره 64 بیتی رفتار می کند.
دقت، درستی¶
Snowflake از شماره های دو برابر (64 بیتی) IEEE 754 شماره شناور استفاده می کند.
دقت تقریباً 15 رقم است. به عنوان مثال ، برای اعداد صحیح ، دامنه ا ز-9007199254740991 تا +9007199254740991 (-2 53 +1 تا +2 5 3-1) است. مقادیر نقطه شناور می تواند از 10 تا 308 تا 10 +308 متغیر باشد.(مقادیر شدیدتر بین تقریباً 10 تا 324 و 1 0-308 با دقت کمتری نشان داده می شود.) برای اطلاعات بیشتر ، به مقاله ویکی پدیا در شماره های دو برابر مراجعه کنید.
Snowflake از شماره داده نقطه ثابت پشتیبانی می کند ، که امکان دقت بیشتری را فراهم می کند ، اگرچه دامنه کمتری از نمایندگان است.
مقادیر خاص
Snowflake از مقادیر ویژه زیر برای شناور پشتیبانی می کند:
- "نان" (نه یک شماره).
- "Inf" (بی نهایت).
- '-inf' (بی نهایت منفی).
نمادها "نان" ، "inf" و "-inf" باید در نقل قول های مجرد باشند و مورد حساس هستند.
معانی مقایسه برای "نان" از روشهای زیر با استاندارد IEEE 754 متفاوت است:
ویدیو های آموزشی فارکس...
ما را در سایت ویدیو های آموزشی فارکس دنبال می کنید
برچسب :
نویسنده : محبوب امانی
بازدید : 28
تاريخ : شنبه
31 تير
1402 ساعت: 15:54