مناطق زمانی (Timezones)
متابیس سعی میکند گزارشها را در هر منطقهٔ زمانی موردنظر شما تا حد ممکن دقیق و سازگار تولید کند، اما مناطق زمانی همیشه کمی «مرموز» هستند.
محلهای تنظیم منطقهٔ زمانی
تنظیمات منطقهٔ زمانی در بخشهای مختلف میتواند روی دادهای که میبینید اثر بگذارد:
Database– شامل تنظیمات کلی منطقهٔ زمانی دیتابیس، نوع ستونها و حتی مقادیر منفرد تاریخ/زمان.OS & JVM– روی سیستمی که متابیس روی آن اجرا میشود، تنظیمات منطقهٔ زمانی سیستمعامل و ماشین مجازی جاوا (JVM) هر دو میتوانند روی گزارشها تأثیر بگذارند.Metabase– داخل خود متابیس، تنظیم Report Timezone (اگر تنظیم شده باشد) مشخص میکند دادهها در چه منطقهٔ زمانی گزارش شوند.Metabase Cloud– منطقهٔ زمانی سروری که اینستنس Metabase Cloud شما روی آن میزبانی میشود.
تنظیمات پیشنهادی
برای گزارشدهی صحیح، مهم است که تنظیمات منطقهٔ زمانی در همهٔ این لایهها تا حد امکان منسجم باشد. متابیس این موارد را توصیه میکند:
- مطمئن شوید ستونهای تاریخ/زمان در دیتابیس شما بهدرستی برای آگاهی از منطقهٔ زمانی پیکربندی شدهاند.
- مگر در صورت نیاز خاص، بهتر است منطقهٔ زمانی دیتابیس (برای ذخیرهسازی) روی UTC تنظیم شود و همهٔ مقادیر تاریخ/زمان را در UTC ذخیره کنید.
- JVM را طوری تنظیم کنید که از همان منطقهٔ زمانیای استفاده کند که برای گزارشها نیاز دارید؛ در حالت ایدهآل، این منطقهٔ زمانی با تنظیم دیتابیس همخوان باشد.
- در متابیس،
Report Timezoneرا مطابق منطقهٔ زمانیای تنظیم کنید که میخواهید گزارشها بر اساس آن نمایش داده شوند؛ این مقدار باید با بقیهٔ تنظیمات منطقهٔ زمانی که انجام دادهاید سازگار باشد. - اگر میخواهید منطقهٔ زمانی اینستنس Metabase Cloud خود را تغییر دهید، لطفاً با پشتیبانی متابیس تماس بگیرید.
انواع داده (Data types)
میتوانید ستونهای دیتابیس را با استفاده از نوع دادههای مناسب نسبت به منطقهٔ زمانی «آگاه» کنید، مثل:
| Data type | توضیح | مثال |
|---|---|---|
timestamp with time zone | از موقعیت (منطقهٔ زمانی) آگاه است. | 2022-12-28T12:00:00 AT TIME ZONE 'America/Toronto' |
timestamp with offset | اختلاف با UTC را میداند. | 2022-12-28T12:00:00-04:00 |
timestamp without time zone | هیچ اطلاعات منطقهٔ زمانیای ندارد. | 2022-12-28T12:00:00 |
نوع دادهٔ دقیق بسته به دیتابیس شما متفاوت است. برخی قابلیتهای متابیس تنها با نوع دادههای مشخصی بهدرستی کار میکنند، مانند:
- تنظیم Report timezone
- عبارت سفارشی
converttimezone
خطاهای رایج
- دیتابیس شما از ستونهای تاریخ/زمان بدون هیچ اطلاعات منطقهٔ زمانی استفاده میکند. معمولاً در این حالت دیتابیس فرض میکند همهٔ دادهها در منطقهٔ زمانی پیشفرض خودش هستند، یا ممکن است بهصورت پیشفرض UTC در نظر گرفته شود (برای اطمینان، مستندات دیتابیس خود را ببینید).
- منطقهٔ زمانی JVM با مقدار انتخابشده برای
Report Timezoneدر متابیس متفاوت است. این مشکل متداول است و با اجرای Java همراه با گزینهٔ-Duser.timezone=<timezone>و تنظیم آن مطابق Report Timezone متابیس قابلحل است.
اگر همچنان با مشکلات مربوط به مناطق زمانی مواجه هستید، به راهنمای عیبیابی مناطق زمانی مراجعه کنید.