هنگامی که یک مدل داده برای ورود داده در Power BI ایجاد میکنید، باید نحوه استفاده صحیح از قرارداد نامگذاری و اینکه چه ستونهایی را برای بهبود قابلیت استفاده کنید، در نظر بگیرید. این مقاله فهرست سریعی از بهترین روشهای معتبر برای Power BI و Power Pivot ارائه میکند.
همه روش توصیف شده را نمی توان برای همه مدل های داده شما اعمال کرد. شما باید این بهترین شیوه ها را با سناریوی خاص خود تطبیق دهید. تمام روشهای توصیف شده برای مدلهای جدولی Power Pivot و Analysis Services نیز معتبر هستند.
از نماها (View) استفاده کنید
همیشه نماها (View) را وارد کنید و هرگز جداول را در مدل داده وارد نکنید.
اگر دادهها را از یک پایگاه داده رابطهای مانند SQL Server یا Oracle دریافت میکنید، هرگز نباید یک جدول پایگاه داده را مستقیماً در مدل داده خود وارد کنید. دلیل این امر این است که وابستگی قوی بین مدل داده فیزیکی و گزارش ایجاد می کند. با گذشت زمان، تغییرات خاصی در ساختار پایگاه داده ممکن است گزارش موجود را خراب کند. به عنوان مثال، تغییر نام یک ستون یا جدول، یا تغییر کاردینالیته یک جدول، همه عملیاتی هستند که نیاز به تغییر متناظر در مدل داده Power BI دارند.
مسئله این است که قابل پیش بینی نیست که چند گزارش می تواند تحت تأثیر یک تغییر خاص قرار گیرد. حتی اگر تحلیل وابستگی ها از نقطه نظر فنی امکان پذیر باشد، امروزه ابزار و روش استانداردی برای انجام آن نداریم. ایجاد View خاص برای هر مدل داده مربوط به معرفی یک لایه غیرمستقیم است که مدیریت تغییر ساختار پایگاه داده را ساده می کند.
بهترین روش برای استفاده از View این است:
- یک Schema برای مدل داده خود ایجاد کنید: به عنوان مثال، می تواند نام data mart یا نام گروهی از گزارش هایی باشد که مدل داده مشابهی را به اشتراک می گذارند.
- برای هر جدولی که می خواهید در مدل داده Power BI در آن Schema ایجاد کنید، یک View ایجاد کنید.
- فقط ستونهایی را که در مدل دادههای Power BI استفاده میشوند، در View قرار دهید.
- وقتی جداول را در Power BI وارد میکنید، نام Schema را حذف کنید و فقط نام View را نگه دارید.
با پیروی از این روش، شما در پایگاه داده مشخص میکنید که جداول و ستونهایی که در یک گزارش استفاده میشوند چیست، تا کاربر اصلی پایگاه از وابستگیهای موجود از خود پایگاه داده مطلع شود. با تغییر در ساختار پایگاه داده، میتوان این View را به گونهای تطبیق داد که با بازگرداندن همان محتوا به کار خود ادامه دهند، بدون اینکه بازخوانی گزارشهای موجود دچار مشکل شود. علاوه بر این، ردیابی وابستگی بین View و جداول در یک پایگاه داده رابطه ای بسیار ساده تر است. برای مثال، در SQL Server میتوانید از ویژگیهای داخلی (مانند مشاهده وابستگیهای جدول) یا ابزارهای شخص ثالث (مانند SQL Dependency Tracker از Red Gate) استفاده کنید.
نکته : توجه داشته باشید View ایجاد شده باید شامل یک لیست صریح از ستون ها باشد و نباید یک لیست عمومی باشد.
با وارد کردن View به جای جداول، مدل داده ممکن است تمام روابط موجود بین جداول را تشخیص ندهد، زیرا محدودیتهای یکپارچگی به جداول اعمال میشوند و نه برای نماها. با این حال، اضافه کردن روابط به صورت دستی به مدل داده تنها حداقل هزینه این روش است.
از نام های معنی دار استفاده کنید
نام نماها و ستون های نمایش داده شده در نماها باید کاربرپسند و با نام هایی که در معرض دید کاربران قرار می گیرد یکسان باشد. شما باید هر پیشوند و پسوندی را که ممکن است در نام جدول استفاده کنید حذف کنید. به عنوان مثال، مشاهده Dim و Fact به عنوان پیشوند جداول معمول است. نشان دادن این پیشوندها به کاربر فایده ای ندارد. همچنین باید از پیشوندهای نماهایی مانند “v” یا “vw” خودداری کنید. شما باید “Customers” را به جای “DimCustomers” یا “vwCustomers” نشان دهید.
همچنین باید از اختصارات، پیشوندها و پسوندها در نام ستون ها خودداری کنید. با این حال، یک استثنا برای کلمات اختصاری شناخته شده ممکن است. به عنوان مثال، شما باید از “Sales Amount” به جای “SalesAmt” یا “SalesAmount” استفاده کنید. می توانید از فاصله و کاراکترهای خاص در نام ستون های یک نما استفاده کنید. هدف ساده کردن زندگی کاربر است و نه ساده کردن زندگی برای برنامه نویسی که باید نام ستونی را در صفحه کلید تایپ کند! در Power BI، هنگام نوشتن فرمول DAX، Intelligence (نمایش خودکار جداول) دارید.
بهترین روش تغییر نام تمام ستونها در نماها، دقیقاً با استفاده از نامهایی است که در رابط کاربری Power BI در معرض نمایش قرار میدهید. شما باید از تغییر نام جداول و ستون ها در مدل داده Power BI خودداری کنید. دلیل آن ساده کردن اصلاحات و پشتیبانی است. اگر نام ستونی را در Power BI تغییر دهید، اگر کاربر برخی از دادههای اشتباه یا گمشده را در گزارش ببیند، با ذکر entity که میشناسد، اصلاع رسانی می کند. اگر این نامها فقط در یک مدل داده Power BI تعریف شده باشند، احتمالاً درخواست پشتیبانی به مدلساز داده هدایت میشود، که اغلب اوقات مدل داده را باز میکند تا متوجه شود که جدول خاصی در پایگاه داده حاوی اطلاعات مناسب نیست.
اگر از نام Schema برای گنجاندن همه نماها استفاده می کنید، نام Schema را از نام های وارد شده در Power BI حذف کنید. متأسفانه، هیچ راه خودکاری برای انجام این کار یا وارد کردن نامهای نما بدون نام Schema وجود ندارد، بنابراین این یک عملیات تغییر نام است که باید در Power BI انجام دهید.
هنگام وارد کردن ستون هایی که باید برای کاربر پنهان شوند، از تکنیکی استفاده کنید که به وضوح قرارداد نامگذاری را نقض می کند. به عنوان مثال، اگر شما star schema دارید و از کلیدهای surrogate استفاده می کنید، ممکن است از پسوند Key در نام ستون بدون هیچ فاصله ای استفاده کنید، برای مثال با استفاده از “CustomerKey” به جای “Customer Key”. همچنین ممکن است اضافه کردن پیشوندی را در نظر بگیرید که نام ستون را در ابتدای یک ترتیب حروف الفبا جابجا کند. برای مثال، ممکن است به جای «CustomerKey» از «_CustomerKey» استفاده کنید. به این ترتیب، این نام ها در ابتدای لیست نام ستون ها قرار می گیرند و بررسی پنهان بودن همه آنها آسان تر خواهد بود.
از ابهام در نام ستون ها و معیارها خودداری کنید
از قبل روی نام measure ها فکر کنید. اگر میخواهید نام «میزان فروش» را برای مجموع همه مبالغ فروش به کاربران ارائه دهید، نمیتوانید از مقدار فروش به عنوان نام ستون استفاده کنید، در غیر این صورت موتور از ایجاد measure خودداری میکند، زیرا نام آن با یک ستون مغایرت دارد. استفاده از نام های عجیب و غریب برای یک measure راه حل خوبی نیست. اگر قصد دارید یک عدد را در مقابل نشان دادن آن به همان شکلی که هست جمع آوری کنید، بهتر است آن را با نامگذاری به مدل وارد کنید، سپس آن را مخفی کنید و به عنوان یک معیار آشکار کنید. به عنوان مثال، میتوانید SalesAmount را بهعنوان LineAmount وارد کنید (بدون فاصله، بنابراین عمداً قانون فاصله بین کلمات در نام ستونها و جدولها را نقض میکنید)، سپس آن را از گزارش پنهان کرده و معیار قابل مشاهده زیر را تعریف کنید:
[Sales Amount]
:=
SUM
(
Sales[LineAmount]
)
اگر میخواهید دادههای زیربنایی موجود را حفظ کنید، آنها را بهعنوان «خلاصه نکنید» علامتگذاری کنید و نام ستونها را مطابق با قرارداد نامگذاری در معرض دید قرار دهید. برای مثال، از مقدار خط و قیمت واحد برای ستونهای قابل مشاهده با نامهای ستون اصلی OrderQuantity و UnitPrice استفاده کنید و اندازهگیری ایجاد کنید که حاصل ضرب دو ستون را خط به خط به درستی جمع کند:
[Sales Amount]
:=
SUMX
(
Sales
,
Sales[Line Quantity]
*
Sales[Unit Price]
)
ستون های غیر مفید را حذف کنید
حتی اگر از قبل نمیدانید کدام ستونها در مدل دادهها مفید خواهند بود، سعی کنید فقط ستونهایی را که ضروری هستند در معرض دید قرار دهید. افزودن ستونها بعداً به یک View هیچ عارضه جانبی ندارد.
با کاهش ستونهای نمایش داده شده در View ، مقدار دادههای بارگذاری شده در حافظه در Power BI را کاهش میدهید و مهمتر از آن از افشای ستونهایی با کاردینالیتی بالا که فقط به دلایل فنی استفاده میشوند (مانند مهر زمانی و نام کاربری برای آخرین تغییر) اجتناب میکنید.
جداسازی تاریخ و زمان
تقسیم اطلاعات در تاریخ و زمان، حافظه را ذخیره می کنید، عملکرد را افزایش می دهید و استفاده از مدل داده را آسان تر می کنید. شما می توانید این تبدیل را در یک کوئری در Power BI انجام دهید، اما انجام این کار از قبل در view باعث افزایش بهره وری با استفاده از Power BI می شود.