هوش تجاری (Business Intelligence)

هوش تجاری (Business Intelligence)

به اشتراک بگذاریم برای یادگیری، یاد بگیریم برای به اشتراک گذاری
هوش تجاری (Business Intelligence)

هوش تجاری (Business Intelligence)

به اشتراک بگذاریم برای یادگیری، یاد بگیریم برای به اشتراک گذاری

انتخاب یک راهکار مناسبِ هوش تجاری بر اساس نیاز کسب و کار- بخش سوم

 بسیاری از راه‌کارهای هوش تجاری موجود در بازار چندین قابلیت را پشتیبانی می‌کنند. لیست مورد بررسی شامل ویژگی‌های پایه می‌باشد که بخش جدایی ناپذیر از تمام راه‌کارهای تجزیه و تحلیل است و همچنین شامل ویژگی‌های پیشرفته‌ای است که بندرت در راه‌کارهای موجود پیاده سازی می‌شوند. ویژگی‌های پیشرفته مواردی هستند که انتظار می‌رود به زودی عملیاتی شوند.

برای این تحقیق، ما تجزیه و تحلیل کاملی از راه‌کارهای BI در بازار و ویژگی‌های آن‌ها در برابر ویژگی‌های انتخاب شده انجام دادیم. سپس لیست ابزارهای BI موجود در بازار را به تعداد 20 ابزار کاهش دادیم. روش مورد استفاده، تجزیه و تحلیل ساختار یافته و مقایسه راه‌کارهای BI را فراهم می‌کند که امیدواریم بینش بهتری در مورد وضعیت فعلی بازار فراهم و به انتخاب راه‌کارهای هوش تجاری کمک کند. علاوه بر این، تحلیل انجام شده اجازه می‌دهد تا روند فعلی در توسعه راه‌کار BI شناسایی شود. این تجزیه و تحلیل می‌تواند به عنوان نقشه راهی باشد که ممکن است هنگام انتخاب یک راه‌کار BI  متناسب با نیازهای سازمان مورد استفاده قرار گیرد. برای این منظور، ما جدول Feature-to-BIsolution را ایجاد کردیم و هرمی از ویژگی ها را به دست آوردیم که روند توسعه راه‌کار BI را منعکس می‌کند - با تمرکز ویژه بر ویژگی های جدید و آینده.

در جدول اول، ما 20 ابزار BI (راه‌کار) انتخاب شده را لیست می‌کنیم. در حال حاضر مشخصات آن‌ها در بازار موجود است و از طریق لینک مشخص شده در دسترس است. علاوه بر راه‌کارهای ارائه شده توسط فروشندگان برجسته(به عنوان مثال، مایکروسافت، IBM، SAP )، ما فروشندگان کوچکتری را نیز بررسی کرده‌ایم که برخی از ویژگی های جالب را ارائه می‌دهند (به عنوان مثال، Avlino، Sisense، QlikTech ).

در بیشتر ابزارهای تحلیل شده در این لیست راه‌کارهای برجسته Gartner برای BI گنجانده شده است (King, 2018). برخی از آنها مانند Domo، Sisense، Tableau، Power BI و Qlik در لیست بهترین نرم افزارهای تجاری سال 2018 گارتنر هستند که توسط مشتریان بررسی شده اند (Gartner, 2018h). به طور کلی، این لیست مخصوص استفاده آسان (easy-to-use) است که طیف گسترده ای از قابلیت های گردش کار تحلیلی را پشتیبانی می‌کند که نیازی به مشارکت قابل توجه متخصصان فناوری اطلاعات ندارد و به کاربران نهایی امکان انتخاب سریع ابزارها را می‌دهد. به عنوان مثال، ابزارها می‌توانند از قبل مدل داده‌ای از پیش تعریف شده را به عنوان پیش شرط تجزیه و تحلیل قرار دهند و در بعضی موارد، امکان تولید خودکار یک مدل داده‌ای قابل استفاده مجدد را فراهم می‌کنند.

توجه داشته باشید که تولید کنندگان نرم افزارهایBI به طور مکرر نسخه‌های جدید را با ویژگی های جدید منتشر می‌کنند، بنابراین در این مقاله، ما در حال بررسی وضعیت آن‌ها در نیمه دوم سال 2018 هستیم. به همین دلیل، هنگام انتخاب یک راه‌کار BI برای سازمان، توصیه می‌شود از ویژگی های فعلی و آینده ارائه شده در راه‌کار BI یک تولید کننده خاص سوال کنید. سرعت تولید / انتشار محصول BI باید به عنوان یکی از عوامل کلیدی در انتخاب در نظر گرفته شود زیرا ماهانه تعداد ویژگی‌های آن افزایش و بهبود می‌یابد. در بخش بعدی برای راه‌کارهای BI ذکر شده در جدول یک، با ارزیابی ویژگی‌های آن‌ها در برابر ویژگی‌های پایه و پیشرفته، تجزیه و تحلیل را انجام می‌دهیم.

جدول شماره یک- راه‌کارهایی (نرم افزار) که برای مقایسه انتخاب شده است.

Web page

BI Solutions

https://www.tableau.com/

Tableau

https://www.microstrategy.com/us

MicroStrategy

https://www.board.com/en

BOARD

https://looker.com/

Looker

https://www.longview.com/

Longview

https://www.sisense.com/

Sisense

https://www.hitachivantara.com/go/

Pentaho

https://www.domo.com/

Domo

https://www.yurbi.com/

Yurbi

https://powerbi.microsoft.com/en-us/

Power BI

https://www.qlik.com/us

Qlik

https://www.birst.com/

Birst

https://www.yellowfinbi.com/

Yellowfin

https://www.gooddata.com/

GoodData

https://www.dundas.com/dundas-bi

Dundas BI

https://www.sap.com/products/crys

SAP Crystal Cloud

https://www.ibm.com/products/cog

IBM Cognos Analytics

https://www.salesforce.com/

Salesforce

https://avlino.com/

Avlino

https://jupyter.org/

Jupiter


 جدول مقایسه‌ای برای بررسی ویژگی‌ها


در این بخش، تعداد بیست ابزار انتخاب شده BI را در مقابل ویژگی‌های آن‌ها در قالب ماتریس محصول / ویژگی که در جدول 2 نشان داده شده است، تحلیل می‌کنیم. علامت سبز نشان دهنده امکان پشتیبانی از feature مشخص شده و علامت‌های قرمز رنگ عدم پشتیبانی از آن ویژگی را نشان می‌دهد. این جدول به سادگی امکان بررسی ویژگی‌های یک راه‌کار خاص BI و مقایسه آن با سایر راه‌کار ها را فراهم می‌کند که این امر به ما در درک وضعیت موجود در بازار ابزارهای هوش تجاری و شناسایی راه‌کارهایی با ویژگی های پیشرفته کمک می‌کند. همچنین می توانیم راه‌کارهایی را شناسایی کنیم که برخی از ویژگی‌ها که به طور استاندارد در راه‌کارهای BI وجود ندارد، مانند دریاچه های داده و یکپارچه سازی اینترنت اشیا، تجزیه و تحلیل تقویت شده، یادگیری عمیق، وNLP را ارائه می‌دهد.

بررسی ها نشان می‌دهد که بیش از 90 درصد از راه‌کارهای تجزیه و تحلیل داده‌ها برای تجزیه و تحلیل؛ تجزیه و تحلیل موردی، داشبورد، کوئری‌های موردی، گزارش‌های موقت و KPI ها را ارائه می‌دهند که در گروه اصلی ویژگی ها هستند. اگرچه اکثر تولیدکنندگان طیف کاملی از ویژگی‌ها را در راه‌کارهای خود ارائه می دهند، اما ممکن است از لحاظ عملکرد و کیفیت سایر راه‌کار ها متفاوت باشند و لزوما یکسان نیستند. از آنجا که فروشندگانی در بازار وجود دارند که در تولید ویژگی‌های خاص بسیار کم تخصص هستند، برای تولیدکنندگان راه‌کارهای کامل BI این امکان وجود دارد که این راه‌کارها را در ابزارهای خود پیاده سازی کنند، بنابراین آن‌ها منابع خود را صرف توسعه ویژگی‌های از قبل ساخته شده نمی‌کنند. از این رو، ادغام، اتصال، همکاری و مشارکت بین تولید کنندگان راه‌کارهای BI امکان توسعه سریع راه‌کار بازار ابزارهای BI را فراهم کرده است.

 بررسی‌های انجام شده تایید می‌کند که اکثر راه‌کارها امکان ادغام ویژگی‌های خاص از سایر محصولات را فراهم می‌کنند.  به عنوان مثال، قابلیت‌های مصورسازی پیشرفته یک راه‌کار را می‌توان در محصولات دیگر گنجاند تا بهترین راه‌کار مصورسازی را به مشتریان خود ارائه دهد. انتظار می رود که فروشندگان به جای توسعه محصولات خود، به سمت ادغام راه‌کارهای دیگر تأمین کنندگان در محصولاتشان متمایل شوند تا ابزار آن‌ها بتواند بالاترین امتیاز را بگیرد.

تجزیه و تحلیل داده‌های بزرگ در ابزارهای BI نفوذ زیادی پیدا کرده است و  از بیست راه کار معرفی شده، تعداد 19 راه‌کار، توانایی انجام تجزیه و تحلیل داده‌های بزرگ را دارند. سایر ویژگی‌های پیشرفته این روند توسعه را در سال 2019 دنبال می‌کنند.

در حال حاضر بیش از 40 درصد از راه‌کارها، دریاچه داده و تجزیه و تحلیل اینترنت اشیا را به عنوان ویژگی‌های پیشرفته BI ارائه می دهند. با پیاده سازی این ویژگی‌ها در آینده، سازمان ها نیاز به استخراج، تبدیل و بارگذاری داده‌ها از دریاچه های داده را به انبارهای داده برای پرس و جو، گزارش و کاوش داده‌ها کاهش می‌دهند. همچنین، این گزینه‌ها دسترسی آسانتر و سریعتر به محتویات دریاچه داده‌ها و قابلیت جستجو در انواع مختلف داده‌ها را فراهم می‌کنند. جریان داده‌ها (Data Streaming) و تجزیه و تحلیل های بی درنگ (Real Time) برای تعداد بیشتری از سازمان‌ها نیز به یکی از اولویتهای مهم و استراتژیک تبدیل شده است. تحلیل اینترنت اشیا به سازمان امکان می‌دهد انواع دستگاه‌ها مانند ماشین‌های صنعتی، وسایل نقلیه و قرائت‌های موجود در پوشیدنی‌های شخصی را کنترل و در سیستم های تحلیلی ادغام کند. اکنون کاربران این امکان را دارند که دستگاه‌های متصل به اینترنت اشیا (IoT) را به عنوان بخشی از فناوری عملیاتی و استراتژی‌های اینترنت صنعتی پیاده سازی کنند. از آنجا که این فناوری‌ها در بازار چندان جدید نیستند، می‌توان انتظار داشت که این ویژگی ها به زودی به استانداردی در راه‌کارهای مدرن BI تبدیل شوند. راه‌کارهای تجزیه و تحلیل BI، و همچنین سایر فناوری‌ها، در راستای فراهم کردن شرایط برای یادگیری ماشین، NLP وAI هستند. همانطور که گارتنر می‌گوید: تا سال 2020 تعداد کاربران راه‌کارهای تجزیه و تحلیل هوشمند تجاری که با قابلیت کشف داده‌های افزوده شده از یکدیگر متمایز می شوند، با دو برابر سرعت رشد می‌کنند - و دو برابر ارزش کسب و کار را ارائه می‌دهند (Bauer, 2018). تحلیل روند بازار راهکارهای BI نشان می‌دهد که مبحث برنامه ریزی استراتژیک، الگویی شامل جستجو و روایت زبان طبیعی، آماده سازی داده‌ها، تجزیه و تحلیل پیشرفته خودکار و قابلیت های کشف داده به صورت بصری رو به افزایش است.

هرم ویژگیهای BI

در مرحله بعدی، هرم ویژگی‌ها را معرفی می‌کنیم. ویژگی‌های سیستم های هوش تجاری بر اساس فراوانی استفاده از آن‌ها مشخص و در شکل 1 نشان داده شده است. رایج ترین ویژگی‌های پیاده سازی شده در اکثر ابزارهای BI در پایین هرم گروه بندی شده و ویژگی‌های کمتر پیاده سازی شده در بالای هرم قرار دارند.

لایه پایین شامل ویژگی‌هایی است که ما آن‌ها را به عنوان ویژگی پایه در نظر میگیریم که در 60 درصد از ابزارهای BI مشترک هستند. لایه دوم شامل تجزیه و تحلیلهای تکمیل شده، تجزیه و تحلیل IoT و دریاچه‌های داده قرار دارند که تقریباً در 20 درصد از ابزارهای BI قابلیت اجرا دارند. با این حال،  بر اساس گزارش‌ها و تحلیل‌های مختلف، حدود 40 درصد از راه‌کارهای تجزیه و تحلیل‌های پیشرفته به شکل کم و بیش پیشرفته در حال توسعه هستند. با امکان استفاده و پشتیبانی از الگوریتم‌های تصمیم ساز هوشمند که کشف تصمیمات تجاری و پنهان را برای تصمیم گیرندگان کسب و کار آسان می‌کند، انقلابی در راه‌کارهای دسترسی بصری به داده‌های پیچیده ایجاد می‌شود. همچنین، زمان مورد نیاز برای آماده سازی داده‌ها با استفاده از اتوماسیون کردن به طور قابل توجهی کاهش یافته است. بررسی‌ها نشان می‌دهد که تمام راه‌کارها کاملاً به سمت تجزیه و تحلیل‌های تکمیلی در حال حرکت هستند.

لایه سوم شامل تحلیل‌های عمیق است. این بخش نشان میدهد که تقریباً 20 درصد از راه‌کارهای هوش تجاریِ مورد تجزیه و تحلیل، انواع تجزیه و تحلیل‌های مبتنی بر یادگیری عمیق را ارائه می دهند.

·        با هدف حل مشکلات پیچیده به روشی که مغز انسان انجام می‌دهد (درک الگوهای مختلف، بررسی مقایسه‌ها، درک تفاوت‌ میلیون ها سند) ما می توانیم از طریق یک Hover ساده بالای متن، پاسخ ها را دریافت کنیم - هوشمند و مستقیما در مرورگرهای وب، برنامه ها و ابزارهای BI تعبیه شده است و نتایج را بدون هیچ گونه کلیک و بدون تاخیر ارائه می‌دهد.

·        پرسیدن سوال‌ها به زبان طبیعی و دریافت پاسخ فوری - تلفیق راه‌کارهایی مانند Alexa برای تبدیل برنامه‌های تحلیلی به مربی شخصی.

·        بینش شخصی - نمایش پویا و هوشمندی که نمای شخصی شده از اطلاعات بر اساس کسانی که در اطراف شما ایستاده‌اند، ارائه می‌دهد. یا یک روش هوشمندتر برای دیدن - امکان استفاده از شناسایی هویت مبتنی بر بلوتوث برای بدست آوردن داده‌های مربوط به برخی از افراد یا فناوری GPS برای واکشی داده‌ها در یک ملک یا مکان.

لایه بالایی شامل ویژگی‌های نو ظهوری مانند Edge computing و NLP است که به راه‌کارهای BI این اجازه را می‌دهد تا نظرات، رفتار و احساسات انسان را درک کنند. راه‌کارهایی که ما تحلیل کرده‌ایم هنوز چنین گزینه هایی را ارائه نمی‌دهند، اما با بررسی روندها، می‌توان نتیجه گرفت که این ویژگی‌ها به زودی در نسخه های بعدی BI پیاده سازی می شوند.

نتیجه گیری

کسب بهترین و بیشترین ارزش از داده‌ها منوط به یافتن راه‌کار هوش تجاری متناسب با نیاز‌های سازمان است. لازم است مشخص شود که این راه‌کار چه ویژگی‌هایی باید پیاده سازی کند، آیا راه‌کار به راحتی قابل انطباق است، یا استفاده از آن آسان است، شرکت سازنده چگونه آن را پشتیبانی می‌کند، چقدر در مسائل امنیتی قوی است و در آخر هزینه چنین راه‌کاری چقدر است. برای درک بهتر این مسائل و چالش‌ها، وضعیت فعلی بازار BI تا پایان سال 2018 را تجزیه و تحلیل کرده و لیستی از 20 راه‌کار BI را در کنار 24 ویژگی-عملکرد، مقایسه کردیم.

ماتریس مقایسه به مقایسه ویژگی‌های اساسی و پیشرفته 20 محصول تحلیل شده BI می‌پردازد. این ماتریس نشان داد که بسیاری از راه‌کارهای BI تمام ویژگی های اساسی را ارائه می دهند، اما تفاوت قابل توجهی را می‌توان در نفوذ ویژگی های پیشرفته یافت، که در کمتر از 20 درصد از ابزار وجود دارد. با نتایج حاصل از تجزیه و تحلیل، می‌توان نتیجه گرفت که ابزارهای Domo، Sisense، Tableau، Power BI و Qlik در لیست بهترین نرم افزارهای تجارتی سال 2018 گارتنر قرار دارند که توسط مشتریان بررسی شده است زیرا این راه‌کارها ویژگی‌های پیشرفته تری نسبت به سایر محصولات به مشتریان خود ارائه می‌دهند. علاوه بر ابزارهایی که در لیست گارتنر گنجانده شده است، ابزارهای دیگری نیز وجود دارد از جمله ابزارهایی که ویژگی های مشابهی را ارائه می دهند و باید مورد توجه قرار گیرند. این جدول به ما توانایی استفاده از همان روش تجزیه و تحلیل برای هر ابزار دیگر و مقایسه آن با برخی از ابزارهای پیشرو در بازار و سایر ابزارهای تجزیه و تحلیل شده در این مقاله را می‌دهد. همچنین اگر به دنبال یک راه‌کار BI هستیم، این می‌تواند یک نقطه شروع برای به دست آوردن یک نمای کلی از بازار باشد و می‌تواند به سازمان ها در روند انتخاب کمک کند.

 هرم ویژگی، بینشهایی را درباره بلوغ فعلی بازار ارائه می دهد و روند آینده توسعه BI را نشان می‌دهد. این یک نمای واضح از ویژگی‌های استاندارد است که در تمام راه‌کارهایی که به تازگی در حال ظهور هستند پیاده سازی و در آینده در آن‌ها اجرا می‌شوند. هرم چارچوب کلی را برای ارزیابی بلوغ محصول BI فراهم می‌‌ند و امکان شناسایی روندهای آینده در ویژگی‌های BI فراهم می‌کند. علاوه بر این، همراه با طبقه بندی جدول 2، موقعیت دقیق ابزارهایBI را با توجه به ویژگی‌های موجود در راه‌کارهای رقابتی ارزیابی کنید. ما از این نتایج متوجه شده‌ایم که هنوز هیچ یک از تولید کنندگانedge computing و NLP را در راه‌کارهای خود پیاده سازی نکرده‌اند. با این حال، تاکید ویژه‌ای بر برخی از این ویژگی ها به عنوان یک مسیر توسعه روشن که مدرن ترین راه‌کارهای BI دنبال می‌کنند، داریم.و در نهایت باید گفت که بازار راه‌کارهای BI یک بسیار پویا است و به احتمال زیاد edge computing و NLP آینده سیستم های BI را تغییر می‌دهند، برنامه هایی که ما قصد داریم در آینده کار آن‌ها را کنترل و بررسی کنیم.


منبع

 بخش دوم

بخش اول


Running Total

مساله:

 جدولی در یک دیتابیس بانکی وجود دارد که اطلاعات تراکنش های مشتریان بانک در آن ذخیره می شود. به گزارشی نیاز داریم که لیست تراکنش های مشتریان به همراه موجودی حساب مشتری را پس از هر تراکنش نمایش دهد.


01

تصویر 1


راه حل:

تکنیکی به نام Running Total وجود دارد که از آن برای محاسبه سرجمع مقادیر یک ستون از اولین سطر تا سطر جاری استفاده می شود.

استفاده از این تکنیک یکی از بهترین راه کارهای سیستم های مالی، انبارداری و ... می باشد. روش های متفاوتی برای استفاده از تکنیک Running Total وجود دارد که در این مقاله با روش های Sub Query، Join و Window Function به صورت Set Based بررسی می شود.


کوئری های این تمرین برروی جدولی شامل تراکنش های بانکی انجام میشود.

ستون UserID شناسه کاربری، ستون TransactionID شناسه تراکنش و ستونQuantity  مبلغ تراکنش انجام شده را در خود ذخیره می کنند. این جدول دارای اطلاعات تراکنش های دو کاربر با شناسه های 1 و 2 است که هر کدام تعداد 10 تراکنش داشته اند.


تصویر 2



دیتابیسی با نام Test (یا هر اسم دلخواه دیگر) ساخته و کد زیر را اجرا کرده تا جدول مورد نظر ساخته شود.


  1. USE    Test;--DataBase Name
  2. IF      OBJECT_ID('dbo.TransactTable', 'U') IS NOT NULL DROP TABLE dbo.TransactTable;
  3. CREATE TABLE  dbo.TransactTable
  4. (
  5.    UserID INT NOT NULL
  6. ,  TransactionID INT NOT NULL
  7. Quantity INT NULL
  8. ,  CONSTRAINT PK_TransactTable PRIMARY KEY CLUSTERED
  9.          (
  10.       UserID ASC
  11.    ,  TransactionID ASC
  12.    )
  13. );
  14. INSERT INTO dbo.TransactTable (UserID, TransactionID, Quantity) VALUES
  15.               (1, 1, 50),( 2, -7),(1, 3, 10),(1, 4, 3), (1, 5, -2),(1, 6, 3),(1, 7, -1)
  16.      ,(1, 8, 17),(1, 9, -6),(1, 10, 1),(2, 1, 10),(2, 2, 5),(2, 3, 4),(2, 4, 7),
  17.      (2, 5, -9),(2, 6, 90),(2, 7, -10),(2, 8, -5),(2, 9, -7),(2, 10, -50);

کد ساخت جدول


Sub Query:

در این روش کوئری درونی(کوئریی که خروجی آن بوسیله کوئری دیگر استفاده می شود) UserIDهای برابر با UserIDهای کوئری بیرونی(کوئریی که از خروجی کوئری درونی استفاده می کند) و TransactionIDهای کوچکتر از TransactionIDهای کوئری بیرونی را فیلتر کرده، سپس مجموع فیلدهای ستون Quantity را محاسبه می کند و در ستونی به نام Balance نمایش می دهد. این عملیات به ازای هر یک از رکوردهای کوئری بیرونی، یک بار انجام می شود.

  1. SELECT     UserID
  2. ,          TransactionID
  3. ,          Quantity
  4. ,          (
  5.               SELECT     SUM(T2.Quantity)
  6.               FROM       dbo.TransactTable    AS     T2
  7.               WHERE      T2.TransactionID     =      T1.TransactionID
  8.                          AND
  9.                          T2.TransactionID     <=     T1.TransactionID
  10.            )  AS         Balance
  11. FROM       dbo.TransactTable    AS     T1;


کوئری اجرای Running Total به وسیله Sub Query



Join:

انجام Running Total به وسیله Join مانند روش Sub Query می باشد. در این روش جدول TransactTable با خودش Join زده می شود و شرط Join آن UserIDهای برابر و TransactionIDهای بزرگتر مساوی جدول اول از TransactionIDهای جدول دوم  می باشد. حاصل جوین جدول TransactTable با خودش بر اساس شرط های گفته شده، به ازای هر UserID و TransactionID جدول اول، TransactionIDهای کوچکتر مساوی آن UserID تکرار می شود. سپس سرجمع ستون Quantity محاسبه شده و بر اساس ستون های UserID و TransactionID دسته بندی(GROUP BY) می شود.


  1. SELECT        T1.UserID
  2. ,             T1.TransactionID
  3. ,             T1.Quantity
  4. ,             SUM(T2.Quantity)     AS     Balance
  5. FROM          dbo.TransactTable    AS     T1
  6. INNER JOIN    dbo.TransactTable    AS     T2
  7.         ON    T2.UserID            =      T1.UserID
  8.               AND
  9.               T2.TransactionID     <=     T1.TransactionID
  10. GROUP BY      T1.UserID
  11. ,             T1.TransactionID
  12. ,             T1.Quantity;


کوئری اجرای Running Total به وسیله Join



Window Function:

با آمدن Window Function به SQL، پیاده سازی Running Total بسیار آسان تر و کم هزینه تر شد. در این روش ستون Quantity را در تابع SUM قرار داده و در OVER، پارتیشن(PARTITION BY) را UserID قرار داده و ترتیب(ORDER BY) را بر اساس TransactionID اعمال میکنیم. محاسبه سرجمع، از اولین رکورد (UNBOUNDED PRECEDING) هر پارتیشن تا سطر جاری(CURRENT ROW) که سرجمع در حال درج در ستون Balance است، انجام می شود.

  1. SELECT     UserID
  2. ,          TransactionID
  3. ,          Quantity
  4. ,          SUM(Quantity) OVER(PARTITION BY UserID ORDER BY TransactionID
  5.               ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)             AS     Balance
  6. FROM       dbo.TransactTable ;


کوئری اجرای Running Total به وسیله Window Function

 

 

مقایسه Execution Planها:

در جدولی که کوئری های فوق بر روی آن اجرا شده است، ستون های UserID و TransactionID کلید اصلی می باشند.


 

لازم به ذکر است که هزینه اجرای کوئری های فوق، می تواند با افزایش تعداد تراکنش ها نسبت به تعداد کاربران و یا بالعکس، متغیر باشد.

 





منبع: برگرفته از کتاب Microsoft SQL Server 2012 High-Performance T-SQL Using Window Functions نوشته Itzik Ben-Gan

چرا باید برنامه های موبایلی را تحلیل کنیم؟ و چرا برای تحلیل داده های موبایلی نیاز به یک ابزار آماده داریم؟

در بحث آنالیز موبایلی (mobile analytics) دو سوال اصلی وجود دارد. در این مقاله سعی شده است که به هر دوی این سوالات به صورت ساده و خلاصه پاسخ داده شود.


چرا باید برنامه های موبایلی را تحلیل کنیم؟


شاید برای شما هم سوالی در این مورد پیش آمده باشد که اصلا چرا باید داده های موبایلی را تحلیل کرد؟!

برای پاسخ به این سوال ابتدا باید گفت که تحلیل داده‌ها و رفتار کاربران باعث شناخت بیشتر از معایب و مزایا برنامه می‌شود. این شناخت به بهبود برنامه و درنهایت کسب درآمد بیشتر منتهی می‌شود.

تحلیل برنامه برای تولید ورژن جدید، افزودن امکانات و اعمال تغییرات برروی ویژگی های موجود بسیار مهم است. شناسایی اتفاقات رخ داده شده میان کاربر و برنامه بسیار سخت است. اینکه متوجه شویم کاربر در هر بخش از برنامه چه رفتاری دارد و چگونه از برنامه استفاده می‌کند، در اعمال بهبودها بسیار نقش دارد.

در این رابطه 7 شاخص بسیار مهم در آنالیز موبایلی وجود دارد که دانستن این اطلاعات از الزامات هر توسعه دهنده است.


1- شاخص تعداد کاربران فعال (Active Users)

دانلود و نصب برنامه ساده ترین بخش کار است. ورود مجدد کاربر به برنامه است که ارزشمندتر است. به همین دلیل هم ما باید اطلاعاتی از تعداد کاربر فعال ماهانه (monthly active users) و تعداد کاربر فعال روزانه (daily active users) داشته باشیم. اینکه کاربران از کجا و چطور از برنامه استفاده می‌کنند به شما این امکان را می‌دهد که با تقسیم بندی آن‌ها امکانات سفارشی مختص به هر کدام را ارئه دهید. اینکار باعث می‌شود تا کاربران مدت زمان بیشتری در برنامه حضور داشته باشند. یکی دیگر از دلایل مهم بودن این شاخص جلب کردن کاربران جدید است. درصد کاربران جدید یکی دیگر از معیارهای مهم است که نباید فراموش کنیم. هر زمانی که مقدار این شاخص کاهش پیدا کند باید آلارم ما اعلام خطر کند.



2- مدت زمان استفاده از برنامه ( Using the application)

یکی از پرطرفدارترین سوالات این است که در کدام صفحه یا بخش از برنامه کاربران خود را از دست داده ایم؟ آیا پاسخ این سوال را میدانید؟ این یک سوال کلیدی است.

دانستن این موضوع که جریان حرکتی در برنامه چگونه است، بسیار مهم می‌باشد چرا که به ما می‌گوید که چرا کاربران در یک صفحه خاص برنامه را ترک می‌کنند. به عنوان مثال این اطلاعات در یک بازی موبایلی می‌تواند به معنای سخت بودن یک مرحله خاص از بازی باشد.


3- حضور در برنامه (Engagement)

برای چه مدت کاربران از برنامه استفاده می‌کنند؟ برای درک این موضوع لازم است طول هر نشست را محاسبه کنید، اگر دیدید که کاربران مدت زمان زیادی را در برنامه شما صرف نمی‌کنند این بدان معناست که شاید انتظارشان از برنامه برآورده نشده. البته این موضوع به برنامه هم بستگی دارد. برای مثال کاربران در یک برنامه نمایش وضعیت آب و هوا بین 1 تا 3 دقیقه زمان صرف می‌کنند که اگر برنامه سودمندی برای کاربران باشد باید تعداد بازدیدهای زیادی داشته باشد. به عبارت دیگر شاخص دیگری که در اینگونه برنامه ها باید اندازه گیری شود تعداد نشست های کاربران است.



4-  ماندگاری (Retention)

تحقیقات نشان می‌دهد که 20 درصد از برنامه های موبایلی فقط برای یک بار مورد استفاده قرار می‌گیرند. درک این موضوع قبل از اینکه دیر شود بسیار مهم است. می‌توانیم شاخص ماندگاری را بر اساس درصد کاربرانی که پس از گذشت یک هفته، یا یک ماه از زمان نصب به برنامه مراجعه کرده اند، داشته باشیم. این شاخص نه تنها از جهت اطلاع از ماندگاری کاربران مهم است، بلکه از نظر چگونگی بازگشت به برنامه نیز مهم می‌باشد.



5- هزینه کسب مشتری (Customer Acquisition Cost)

بسیار مهم است که بدانیم هزینه جذب هر یک از کاربران چقدر بوده است چراکه از این طریق میتوانیم هزینه تبلیغات را محاسبه کنیم. این هزینه بر اساس جمع تمامی هزینههای انجام شده برای کسب  مشتری (تبلیغات، بازاریابی و ...) تقسیم بر تعداد کاربران در یک بازه زمانی مشخص میباشد.


6-  میانگین درآمد از هر کاربر (Average revenue per customer)

این شاخص با جمع کردن درآمد از هرکاربر (خرید برنامه، پرداخت درون برنامه ای، تبلیغات و...) و تقسیم بر تعداد کل کاربران محاسبه میشود. با بدست آوردن این شاخص میتوانیم میانگین درآمد را با هزینه‌های جذب مشتری مقایسه کرد. این مقایسه به ما میگوید که آیا به هدفمان رسیده ایم یا خیر.



7- ارزش عمر مشتری (Customer lifetime value)

اگر می‌خواهید بدانید که کاربران از زمان نصب تا خروج از برنامه به طور میانگین چقدر درآمد ایجاد می‌کنند، باید این شاخص را بررسی کنید. پیش بینی سرمایه مورد نیاز برای انتشار محصول با بررسی این اطلاعات ممکن می‌شود.


برای محاسبه شاخص های فوق و بسیاری شاخص‌های سودمند دیگر، استفاده از ابزارهای آنالیتیکس توصیه می شود. در حال حاضر استارت آپ دیتابین به عنوان اولین ارائه کننده اختصاصی خدمات تحلیل برنامه های موبایلی از زمان نصب تا ترک برنامه توسط کاربران، تحلیل های ارزشمندی در اختیار توسعه دهندگان قرار می دهد.


چرا برای تحلیل داده های موبایلی نیاز به یک ابزار آماده داریم؟


شما یک توسعه دهنده برنامه های موبایلی هستید با توانایی های مشخص، ممکنه فراتر از یک توسعه دهنده باشید و با تخصص های مرتبط با تحلیل داده هم آشنایی داشته باشید اما باز هم مقرون به صرفه نیست که خود شما زمان و هزینه ای برای این کار بپردازید!

برای تحلیل داده نیاز اصلی و اولیه دیتا است. مشکل اصلی اینجاست که تعداد کمی از توسعه دهندگان هستند که میدانند دقیقا چه داده هایی نیاز دارند تا بتوانند شاخص ها را استخراج کنند. اگر این مشکل حل بشه میرسیم به نحوه دریافت داده ها، ارتباط با دیتابیس، طراحی و پیاده سازی انبار داده و انجام عملیات ETL جهت پالایش و بارگذاری داده های خام در انبار داده‌ها.

مرحله بعد طراحی یک مدل OLAP جهت پردازش داده های خام و تبدیل آن‌ها به اطلاعات مفید و سودمند است. پس از انتقال داده ها به مکعب‌های تحلیلی (Cube) نوبت به ایجاد KPIها می‌رسد. این شاخص ها توسط کوئری های نسبتا پیچیده تغذیه میشوند.

برخی از شاخص ها از طریق رویه های ایجاد شده در انبار داده ها و برخی دیگر از طریق MDXهای پیچیده داده های خام را به اطلاعات مفید تبدیل می‌کنند.

در مرحله آخر باید به کاوش در اطلاعات پرداخت، جایی که مدیران محصول در انتظار گزارشات بهبود محصول هستند. این بخش از نمودارها و جداول متناسب با هر شاخص طراحی و تولید شده است.

به تمام مواردی که اشاره شده توسعه، نگهداشت، سرعت، امنیت و هزینه های سخت افزار و نرم افزار را اضافه کنید. آیا توسعه دهنده ای هست که بخواهد تمام این کارها را خودش انجام دهد؟!

حذف سطرهای تکراری یک جدول، بوسیله SSIS Sort Transformation

در SQL Server برای حذف رکوردهای تکراری یک جدول، راه های متعددی  وجود دارد که در این پست با استفاده از سرویس SSIS این کار را به راحتی انجام خواهیم داد.

در SSIS وقتی  نیاز به مرتب سازی جدول پیدا می کنیم، میتوانیم از کامپوننتی به اسم Sort  استفاده کنیم که مانند دستور Order By عمل میکند و میتواند به صورت صعودی و نزولی سطرها را مرتب کند.


ابتدا یک پروژه SSIS  ساخته ، سپس در قسمت Solution Explorer روی Connection Managers کلیک راست کرده و گزینه New Connection Manager را انتخاب می کنیم.



پنجره ای باز میشود به اسم Add SSIS Connection Manager، که در این مثال  نوع OLEDB را انتخاب و سپس دکمه Add را میزنیم.



پنجره ای به نام Configure OLEDB Connection Manager ظاهر خواهد شد که با کلیک دکمه New پنجره ای به نام Connection Manager ظاهر خواهد شد. گزینه Server Name و دیتابیس مورد نظر را انتخاب می کنیم.





بعد از اطمینان از درستی برقراری کانکشن با کلیک دکمه Test Connection، دکمه OK  را کلیک کرده تا به مرحله بعد برویم.

Data Flow Task را از جعبه ابزار به صفحه طراحی منتقل می کنیم.



روی Data Flow Task کلیک راست کرده و گزینه Edit را انتخاب می کنیم تا وارد Data  Flow Task شویم. سپس OLEDB Source را از جعبه ابزاربه محیط طراحی منتقل می کنیم.



روی OLEDB Source راست کلیک کرده و گزینه Edit را انتخاب می کنیم. پنجره ای با نام OLEDB Source Editor ظاهر خواهد شد. دیتابیس و سپس جدول مورد نظر خود را انتخاب میکنیم.



روی دکمه Preview کلیک کرده تا یک پیش نمایش از جدول  ببینیم.

در تصویر جدول زیر، رکوردهای تکراری را علامت گذاری کرده ایم.



روی دکمه Close و سپس OK کلیک کرده تا به محیط طراحی برویم. 

Sort را از جعبه ابزار به محیط طراحی منتقل کرده و سپس  OLEDB Source را به Sort  متصل می کنیم.



روی کامپوننت Sort کلیک راست کرده و گزینه Edit را انتخاب می کنیم.صفحه یی به نام Sort Transformation Editor باز خواهد شد که با انتخاب هر فیلد، عمل مرتب سازی، بر اساس فیلد انتخاب شده انجام می شود.



روی دکمه OK کلیک کرده  و Derived Column را از جعبه ابزار به محیط طراحی منتقل می کنیم. سپس کامپپوننت Sort را به Derived Column متصل می کنیم.



روی متصل کننده ی کامپوننت Sort به کامپوننت Derived Column  کلیک راست کرده و گزینه Enable Data Viewer را انتخاب می کنیم تا تعداد رکوردهای منتقل شده راببینیم.



روی دکمه Start که در نوار ابزار است، کلیک کرده تا رکوردهای مرتب شده را ببینیم.



همانطور که می بینید، رکوردهای زیر بر اساس ستون Name مرتب شده اند.



روی دکمه Stop  که در نوار ابزار است کلیک کرده  و روی کامپوننت Sort  کلیک راست کنید و گزینه Edit  را زده تا پنجره Sort  Transformation Editor مجدد ظاهر شود. سپس Remove Rows With Duplicate Sort Values  را انتخاب کرده و روی دکمه OK  کلیک می کنیم.



روی دکمه Start کلیک کرده تا نتیجه را ببینیم.  همانطور که در تصویر زیر مشخص است، 19 سطر به کامپوننت Sort  منتقل، در آنجا مرتب سازی و سپس سطرهای تکراری حذف شده و 12 سطر به مرحله بعد منتقل می شود.


منبع

آیا دوران پادشاهی اوراکل در حوزه‌ی مدیریت پایگاه‌های داده عملیاتی به پایان رسیده است؟

از سال 1970 تا به حال سیستم‌های مدیریت پایگاه داده عملیاتی – ODBMS - مختلفی ایجاد شده‌اند. بعضی از آنها به مرور زمان از بین رفته‌اند و برخی قدرتمند‌تر شده‌اند. در دهه‌های اخیر بین سیستم‌های مدیریت پایگاه داده عملیاتی، محصولات شرکت‌های اوراکل، مایکروسافت، IBM و SAP از بقیه موفق‌تر بوده‌اند. اما مسلما در این بین بهترین سیستم مدیریت پایگاه داده، محصول شرکت اوراکل بوده است و سخن گزافی نیست که بگوییم محصول شرکت اوراکل در دهه‌های اخیر در بین محصولات دیگر شرکت‌ها پادشاهی می‌کرده است .

تا حدود 4 سال پیش بین کیفیت oracle db و sql server اختلاف فاحشی وجود داشت. چه از نظر سرعت و چه از نظر دیگر امکانات، اوراکل کاملا برتر از رقیب خود بود. در نسخه‌ی sql server 2012، امکانات قابل توجهی به محصول شرکت مایکروسافت افزوده شد. از مهمترین این امکانات می‌توان به ویژگی AlwaysOn و ColumnStore Index‌ها اشاره کرد. امکانات این نسخه باعث شد که اختلاف بین oracle db و sql server تا حدی کاهش یابد. مایکروسافت سرانجام در نسخه‌ی sql server 2014 خود تغییرات اساسی بوجود آورد. مهمترین این تغییرات ایجاد موتور درونی In-Memory OLTP می‌باشد که برای تراکنش‌های درون حافظه بهینه شده است. با استفاده از امکانات این نسخه می‌توان بدون نیاز به دوباره نویسی محصولات، سرعت اجرای کوئری‌های آنها را به طور متوسط ده برابر کرد. در شکل ذیل ساختار جدید sql server مشاهده می‌شود.

منبع و ادامه مطلب