BigQuery یک فضای ذخیره سازی برای دادههای کلان است که توسط Google Cloud Platform مدیریت می شود. با ارائه آنالیتیکس 4، امکان اتصال بیگ کوئری به آنالیتیکس به صورت رایگان برای تمام بیزینسها فراهم شد. به همین دلیل، تقاضا برای یادگیری و شرکت در دوره آموزشی بیگ کوئری هم افزایش یافت. یکی از مهمترین مفاهیمی که برای کارکردن با BigQuery باید به آن مسلط باشید، انواع داده در بیگ کوئری است.
انواع مختلف داده BigQuery چیست؟
BigQuery از انواع دادههای مختلف پشتیبانی می کند که هر کدام دارای چندین قابلیت و همچنین محدودیتهایی دارند:
1. عدد (NUMERIC)
2. BOOLEAN
3. رشته (STRING)
4. BYTES
5. زمان و تاریخ
6. منطقه زمانی
7. جغرافی (GIS)
8. آرایه
9. ساختار (STRUCT)
داده از نوع NUMERIC در بیگ کوئری
انواع داده عددی که در بیگ کوئری پشتیبانی می شوند، عبارت هستند از:
- عدد صحیح (INT64): این نوع داده نشان دهنده اعدادی در محدوده 9,223,372,036,854,775,808 تا 9,223,372,036,854,775,807 و اعدادی است که جز کسری ندارند.
- Float (Float64): اعداد با مقادیر عددی تقریبی و کسر.
- Numeric: دادهای به نام “NUMERIC” وجود دارد که مشابه “اعشاری (Decimal )” است که می تواند مقادیری با 38 رقم صحیح و 9 رقم اعشاری را ذخیره کند.
همراه با دادههای عددی از چه توابعی میتوان در بیگ کوئری استفاده کرد؟
توابع حسابی و ریاضی
انواع دادههای عددی از عملیات پایه ریاضی مانند جمع، تفریق، ضرب و غیره پشتیبانی می کنند. همیشه می توانید از توابع ریاضی در ستونها و ردیفهایی که حاوی انواع دادههای عددی هستند استفاده کنید.
نکته مهم: اگر مخرج صفر باشد، تابع تقسیم خطای تقسیم بر صفر را برمیگرداند. برای جلوگیری از دریافت چنین خطاهایی هنگام اجرا شدن کوئری مد نظر، باید از توابع خاصی مانند IEEE_divide استفاده کنید. با استفاده از این تابع، حتی اگر مخرج کسر عدد 0 باشد، به جای خطا، مقدار NaN را دریافت خواهید کرد. این تابع به شما این امکان را میدهد تا بدون هیچ خطایی کوئریها را اجرا کنید.
توابع Safe
با استفاده از توابع Safe میتوانید عملیات ریاضی تعریف نشده را بدون هیچ خطایی اجرا کنید و مقدار NULL را به عنوان خروجی دریافت کنید. برای استفاده از توابع Safe، تنها کاری که باید انجام دهید، استفاده از پیشوند Safe همراه با اسم تابع مورد نظر است.
محاسبات اعشاری دقیق
برای محاسبات دقیق مالی، باید از توابع دقیقی استفاده کرد. انواع دادههای عددی در بیگ کوئری از 16 بایت برای ذخیره سازی استفاده می کنند و می توانند اعداد اعشاری را به طور دقیق نشان دهند.
دستورات مقایسهای
انواع دادههای عددی از عملگرهای مقایسه پشتیبانی می کنند. عملگرهای مقایسه (<, <=, > , > =,! = , <>) برای مقایسه یک یا چند مورد استفاده می شوند. خروجی این دستورات از کوچک به بزرگ عبارت است از:
- Null
- NaN
- · -inf (بی نهایت منفی)
- اعداد منفی
- · 0
- اعداد مثبت
- · +inf (بی نهایت مثبت)
داده از نوع 0 یا 1 (BOOLEAN) در بیگ کوئری
دادههای بولین، داده هایی هستند که به صورت TRUE یا FALSE نمایش داده می شوند. همراه با دادههای BOOLEAN میتوان از توابع زیر استفاده کرد:
عملگرهای منطقی
ر عملگرهای منطقی دستوراتی هستند که به فیلترکردن نتایج بر اساس مجموعه ای از شرایط کمک می کنند. فیلترکردن با استفاده از عبارت WHERE انجام می شود و عملگرهای منطقی شرایط مورد نظر را تعیین می کنند. نتیجه استفاده از عبارت WHERE و یک عملگر منطقی، بر اساس درست یا نادرست بودن شرط WHERE است.
عملگرهای شرطی
از دادههای بولین میتوان همراه با عملگرهای شرطی هم استفاده کرد. IF یکی از عملگرهایی است که اگر پارامتر اول در شرط TRUE باشد، پارامتر دوم را برمیگرداند و اگر FALSE باشد، پارامتر سوم را برمیگرداند.
داده از نوع رشته در بیگ کوئری
رشتهها کاراکترهای یونیکد با اینکدینگ UTF-8 هستند که طول متغیری دارند. تسلط به دستورات مربوط به تغییر داده از نوع رشته در بیگ کوئری، یکی از مهمترین موضوعاتی است که هنگام کار با داده باید در نظر داشته باشید. رشتهها برای ذخیره هر نوع دادهای که توسط کاربر وارد می شود، مانند اطلاعات ورود به سیستم، آدرس ایمیل، پاسخ به نظرسنجیها و غیره استفاده می شوند. این مدل از دادهها به صورت ویژه در سایتهای فروشگاهی رایج هستند، زمانی که آدرس حمل و نقل و صورتحساب، درخواستهای مشتریان، شمارههای ردیابی و بسیاری موارد دیگر را شامل می شوند. برای آنکه مشخص کنیم داده از نوع STRING است، باید از علامت (‘) یا (“) استفاده کنید.
دستورات تغییر نوع داده
گاهی اوقات نیاز است که برای کارکردن با دادهها، نوع برخی از آنها را تغییر دهیم. برای تغییر نوع داده در بیگ کوئری میتوانیم از دستور CAST استفاده کنیم؛ داده از نوع INT64 را به FLOAT64 یا به رشته تبدیل کنیم و برعکس و…
توجه داشته باشید، اگر امکان تغییر نوع داده وجود نداشت و خطا گرفتید، میتوانید از دستور SAFE_CAST استفاده کنید که در صورت وجود خطا مقدار NULL را برمیگرداند و در روند اجرای کوئری وقفهای ایجاد نمی کند.
دستور الحاق دادهها
میتوانید از دستور CONCAT برای دستکاری رشتهها استفاده کنید، به عنوان مثال، برای بخشهای مجزای رشتههای مختلف را در یک سلول واحد به هم متصل کنید.
دستورات Regular expression یا عبارات منظم
Regular expressionها به شما امکان می دهد کاراکترها و الگوهای خاصی را پیدا کنید و کوئریهای پیچیدهای اجرا کنید.
- REGEXP_CONTAINS: یک الگو یا کاراکتر مد نظر پیدا کنید
- REGEXP_EXTRACT: الگوی مد نظر را حذف کنید
- REGEXP_REPLACE: الگوی مد نظر را جایگزین کنید.
داده از نوع بایت در بیگ کوئری
اگرچه اکثر توابعی که برای رشتهها به کار برده می شوند، روی داده هایی از نوع بایت نیز اعمال می شوند، داده از نوع بایت با رشته متفاوت است و نباید به جای یکدیگر استفاده شوند. برای متمایزکردن داده از نوع بایت با رشته، باید علاوه بر ‘، “از حرف b قبل از داده استفاده کرد. مشابه با:
SELECT * FROM new_data WHERE Height = b’16D6M7PN3w7Cn8mJyrmrUSZY9ummMf5QCGEMuiSmSlw