1
في قديم الزمان، كان تخزين البيانات ومعالجتها يعتبر عملية مكلفة ومعقدة، بحيث إن تخزين البيانات يتطلب حفظها في سيرفرات داخل المنشأة أو الشركة بشكل متراص فوق بعض، بحيث تكون مشبكة بكيبلات كثير.
بالإضافة إلى المكيفات الكثيرة اللي تحتاجها للتبريد، وفي حال رغبتك بكتابة query أو إسترجاع بيانات معينة، قد تحتاج إلى وقت طويل يصل لساعات وممكن أيام، يعني بإختصار الوضع كان مزري زمان!
في قديم الزمان، كان تخزين البيانات ومعالجتها يعتبر عملية مكلفة ومعقدة، بحيث إن تخزين البيانات يتطلب حفظها في سيرفرات داخل المنشأة أو الشركة بشكل متراص فوق بعض، بحيث تكون مشبكة بكيبلات كثير.
بالإضافة إلى المكيفات الكثيرة اللي تحتاجها للتبريد، وفي حال رغبتك بكتابة query أو إسترجاع بيانات معينة، قد تحتاج إلى وقت طويل يصل لساعات وممكن أيام، يعني بإختصار الوضع كان مزري زمان!
2
بس مع الوقت الأدوات أتحسنت بالذات في آخر 10 سنين لما بدأت تظهر لنا مفاهيم زي الكلاود، واللي هي كأنها نفس رفوف الكمبيوتر الي اتكلمنا عنها فوق ولكن أكبر وعليها مكيفات، وتوصيل الكيابل فيها جدًا ممتاز، ولكن الفرق الوحيد إنك تقدر تستأجرها لما تحتاجها.
وصارت البيانات كمان في الوقت الحالي أرخص وأسرع في التعامل وبدينا نشوف أدوات تتعامل مع البيانات بمختلف أشكالها واللي من الممكن تخلي لنا منظر البيانات معقد نوعًا ما رغم كل المميزات اللي ذكرناها.
بس مع الوقت الأدوات أتحسنت بالذات في آخر 10 سنين لما بدأت تظهر لنا مفاهيم زي الكلاود، واللي هي كأنها نفس رفوف الكمبيوتر الي اتكلمنا عنها فوق ولكن أكبر وعليها مكيفات، وتوصيل الكيابل فيها جدًا ممتاز، ولكن الفرق الوحيد إنك تقدر تستأجرها لما تحتاجها.
وصارت البيانات كمان في الوقت الحالي أرخص وأسرع في التعامل وبدينا نشوف أدوات تتعامل مع البيانات بمختلف أشكالها واللي من الممكن تخلي لنا منظر البيانات معقد نوعًا ما رغم كل المميزات اللي ذكرناها.
3
وفي الفترة الاخيرة شفنا كثيرين "منهم انا" بيتكلمو عن ذكاء الأعمال والبيانات الضخمة والـinsights المبنية على الذكاء الاصطناعي ولكن كل هذا للتسويق لا أكثر ولا أقل.
من وجهة نظري وواقع خبرة بسيطة جدًا، معظم الشركات ما عندها حتى 1 بيتا بايت من البيانات، وأصلًا الشركات ما تحتاج إلى هذا القدر الكبير من البيانات، فقط تحتاج إلى إنها تكون قادرة على إسترجاع البيانات اللي موجودة عندها في الوقت تحتاجه فيها، وتتفاعل معاها وتعمل عليها عمليات تجميع وما إلى ذلك، وممكن بعض الشركات ما تحتاج إلا إنها تحول البيانات للعملاء بحيث إنهم يكونوا قادرين على استخدامها في وقت حاجتهم لها.
وفي الفترة الاخيرة شفنا كثيرين "منهم انا" بيتكلمو عن ذكاء الأعمال والبيانات الضخمة والـinsights المبنية على الذكاء الاصطناعي ولكن كل هذا للتسويق لا أكثر ولا أقل.
من وجهة نظري وواقع خبرة بسيطة جدًا، معظم الشركات ما عندها حتى 1 بيتا بايت من البيانات، وأصلًا الشركات ما تحتاج إلى هذا القدر الكبير من البيانات، فقط تحتاج إلى إنها تكون قادرة على إسترجاع البيانات اللي موجودة عندها في الوقت تحتاجه فيها، وتتفاعل معاها وتعمل عليها عمليات تجميع وما إلى ذلك، وممكن بعض الشركات ما تحتاج إلا إنها تحول البيانات للعملاء بحيث إنهم يكونوا قادرين على استخدامها في وقت حاجتهم لها.
4
في وقتنا الحاضر، تعتبر مجموعات البيانات البسيطة هي الشي اللي تحتاجه أغلب الشركات، وبعد كذا توسّع نطاقها حسب الحاجة.
وهذي تعتبر من أفضل الاستراتيجيات عشان تكون فاهم المشهد العام.
في وقتنا الحاضر، تعتبر مجموعات البيانات البسيطة هي الشي اللي تحتاجه أغلب الشركات، وبعد كذا توسّع نطاقها حسب الحاجة.
وهذي تعتبر من أفضل الاستراتيجيات عشان تكون فاهم المشهد العام.
5
طيب الآن خلونا نتكلم عن مصطلح جدَا مهم يسمى Data stacks
الـData stacks هي اللي تخلي بياناتك اكثر مركزية وتحمي تطبيقك وانظمتك من الـqueries الكثيرة اللي ممكن تبطئ النظام أو يكون لها تأثير سلبي على أداء النظام.
الـ Data stacks هي عبارة عن مصطلح يقصد فيه البرامج اللي تدير البيانات طول رحلتها، من أول ما تبدأ تاخذها من مصدرها إلى الداشبورد اللي راح تعرضها فيه.
طيب الآن خلونا نتكلم عن مصطلح جدَا مهم يسمى Data stacks
الـData stacks هي اللي تخلي بياناتك اكثر مركزية وتحمي تطبيقك وانظمتك من الـqueries الكثيرة اللي ممكن تبطئ النظام أو يكون لها تأثير سلبي على أداء النظام.
الـ Data stacks هي عبارة عن مصطلح يقصد فيه البرامج اللي تدير البيانات طول رحلتها، من أول ما تبدأ تاخذها من مصدرها إلى الداشبورد اللي راح تعرضها فيه.
6
تنقسم مزايا الـData stacks إلى جزئين:-
-أول ميزة هي إن الـ Data stacks يحمي قاعدة بياناتك من البطء أو ضعف الأداء بسبب كثرة الـqueries عليها.
تخيل إنك في مؤسسة حجمها كبير وعندك 10 آلاف موظف، وربعهم فقط قاعدين يسووا queries بشكل عشوائي على الـDatabase وكل query تحتوي على آلاف أو ملايين من الصفوف وجداول كثيرة مرتبطة ببعضها الخ..
بالتالي راح يصير عندك شي يشبه الزحام مو بس لك كمنشأة، حتى الغلابة اللي جالسين يستخدموا تطبيقك أو تطبيقاتك.
تنقسم مزايا الـData stacks إلى جزئين:-
-أول ميزة هي إن الـ Data stacks يحمي قاعدة بياناتك من البطء أو ضعف الأداء بسبب كثرة الـqueries عليها.
تخيل إنك في مؤسسة حجمها كبير وعندك 10 آلاف موظف، وربعهم فقط قاعدين يسووا queries بشكل عشوائي على الـDatabase وكل query تحتوي على آلاف أو ملايين من الصفوف وجداول كثيرة مرتبطة ببعضها الخ..
بالتالي راح يصير عندك شي يشبه الزحام مو بس لك كمنشأة، حتى الغلابة اللي جالسين يستخدموا تطبيقك أو تطبيقاتك.
7
-ثاني ميزة وهي إن الـData stacks تساعدك في تكوين مركزية لبياناتك، يعني بشكل مختصر تكون في المركز وممكن يرتبط فيها أكثر من application أو system وتسهل التواصل بين الأنظمة المتعددة داخل المنشأة أو التطبيق.
-ثاني ميزة وهي إن الـData stacks تساعدك في تكوين مركزية لبياناتك، يعني بشكل مختصر تكون في المركز وممكن يرتبط فيها أكثر من application أو system وتسهل التواصل بين الأنظمة المتعددة داخل المنشأة أو التطبيق.
8
ولو أخذنا نظرة عامة عن الـData stacks
راح نلاقي إنها مكونة من 4 طبقات:
-Source layer المسؤولة عن جمع البيانات.
-Transformation and modeling layer مسؤولة عن ترتيب وتنظيم البيانات.
-Storage layer لتخزين وترتيب وتسهيل الوصول للبيانات.
-Analysis layer مسؤولة عن التحليلات والرسومات اللي تحتاجها عشان تفهم إيش اللي قاعد يصير.
هل فيه تداخل بينهم؟ طبعًا!
هل هم ٤ فقط؟ لا، قد يكون فيه غيرهم ولكن هذي الـ٤ هي الطبقات الرئيسية.
خلونا نشوفها طبقة طبقة 🫡
ولو أخذنا نظرة عامة عن الـData stacks
راح نلاقي إنها مكونة من 4 طبقات:
-Source layer المسؤولة عن جمع البيانات.
-Transformation and modeling layer مسؤولة عن ترتيب وتنظيم البيانات.
-Storage layer لتخزين وترتيب وتسهيل الوصول للبيانات.
-Analysis layer مسؤولة عن التحليلات والرسومات اللي تحتاجها عشان تفهم إيش اللي قاعد يصير.
هل فيه تداخل بينهم؟ طبعًا!
هل هم ٤ فقط؟ لا، قد يكون فيه غيرهم ولكن هذي الـ٤ هي الطبقات الرئيسية.
خلونا نشوفها طبقة طبقة 🫡
9
اول طبقة
الـSource layer
في الواقع تجمع الشركات البيانات من تطبيقاتها وفي نفس الوقت تجمعها إما عن طريق تطبيقات أخرى أو عن طريق third-party أو ممكن عن طريق الكثير من المصادر الأخرى مثل:-
-Production databases واللي تتسمى أحيانًا بـtransactional databases أو operational databases أو application databases وهي عبارة عن قاعدة البيانات اللي يتم إستخدامها من قِبل برنامجك لتخزين جميع البيانات المتعلقة بأي شي يعمله برنامجك. بشكل أوضح، كأنه يسجل نفسه.
اول طبقة
الـSource layer
في الواقع تجمع الشركات البيانات من تطبيقاتها وفي نفس الوقت تجمعها إما عن طريق تطبيقات أخرى أو عن طريق third-party أو ممكن عن طريق الكثير من المصادر الأخرى مثل:-
-Production databases واللي تتسمى أحيانًا بـtransactional databases أو operational databases أو application databases وهي عبارة عن قاعدة البيانات اللي يتم إستخدامها من قِبل برنامجك لتخزين جميع البيانات المتعلقة بأي شي يعمله برنامجك. بشكل أوضح، كأنه يسجل نفسه.
10
-Operational apps وباختصار هي البيانات اللي تجي من السوشال ميديا أو الـCRMs.
-External data وهي البيانات اللي ممكن نحصل عليها من Google analytics مثلًا، أو بيانات ديموغرافية أشتريتها من البقالة اللي جمب بيتك، أو بيانات الأسواق أو ما يسمى بالـgeospatial data.
-Operational apps وباختصار هي البيانات اللي تجي من السوشال ميديا أو الـCRMs.
-External data وهي البيانات اللي ممكن نحصل عليها من Google analytics مثلًا، أو بيانات ديموغرافية أشتريتها من البقالة اللي جمب بيتك، أو بيانات الأسواق أو ما يسمى بالـgeospatial data.
11
طيب جرب كذا انك تتخيل لو كنت صاحب شركة 🤔!
راح تحتاج إنك تجيب البيانات من مصادر مختلفة زي ما ذكرنا سابقًا، والبحث عن البيانات هذي ممكن يطول، فـ بالتالي كإحدى الحلول، ممكن تستخدم APIs لكل تطبيق ويحتاج إنك تضمن الحفاظ على التوصيل هذا باستخدام أدوات تتسمى أحيانًا أدوات الـData ingestion and data integration.
مثل:-
Fivetran
Stitch
Zapier "فنان جدا"
طيب جرب كذا انك تتخيل لو كنت صاحب شركة 🤔!
راح تحتاج إنك تجيب البيانات من مصادر مختلفة زي ما ذكرنا سابقًا، والبحث عن البيانات هذي ممكن يطول، فـ بالتالي كإحدى الحلول، ممكن تستخدم APIs لكل تطبيق ويحتاج إنك تضمن الحفاظ على التوصيل هذا باستخدام أدوات تتسمى أحيانًا أدوات الـData ingestion and data integration.
مثل:-
Fivetran
Stitch
Zapier "فنان جدا"
12
ثاني طبقة
الـTransformation and modeling
بشكل عام محاولاتك لتحليل بيانات غير نظيفة ولم يتم تعديلها عبارة عن كابوس لمحلل البيانات، فـ اللي يصير في هذي الطبقة داخل الـData stacks ببساطة هو تحويل البيانات اللي جمعتها لشكل يسهل عليك تحلله وتتعامل معاه وتبحث عنه.
والفكرة كلها تتمحور في إنك تكتب queries ولكن مجدولة نسميها ETLs، يعني ممكن تسحب لك بيانات وترسلها للويرهاوس مرة في الليلة.
ثاني طبقة
الـTransformation and modeling
بشكل عام محاولاتك لتحليل بيانات غير نظيفة ولم يتم تعديلها عبارة عن كابوس لمحلل البيانات، فـ اللي يصير في هذي الطبقة داخل الـData stacks ببساطة هو تحويل البيانات اللي جمعتها لشكل يسهل عليك تحلله وتتعامل معاه وتبحث عنه.
والفكرة كلها تتمحور في إنك تكتب queries ولكن مجدولة نسميها ETLs، يعني ممكن تسحب لك بيانات وترسلها للويرهاوس مرة في الليلة.
13
الآن خلونا نشوف بعض الـTransformations اللي ممكن نسويها:
-تسحب بيانات بصيغة csv او json وتنظمها داخل جداول في قاعدة البيانات.
-تجميع بيانات من مصادر مختلفة في جدول واحد.
-تصفية وتنظيف البيانات بشكل بسيط.
طيب يا هشام قروشتنا ايش يعني ETL؟
Extract, Transform, Load
أو استخراج، تحويل، تحميل
الآن خلونا نشوف بعض الـTransformations اللي ممكن نسويها:
-تسحب بيانات بصيغة csv او json وتنظمها داخل جداول في قاعدة البيانات.
-تجميع بيانات من مصادر مختلفة في جدول واحد.
-تصفية وتنظيف البيانات بشكل بسيط.
طيب يا هشام قروشتنا ايش يعني ETL؟
Extract, Transform, Load
أو استخراج، تحويل، تحميل
14
ETLs هي scripts أو jobs تستخرج لك البيانات من مصادر كثيرة وتحولها إلى الويرهاوس.
Extract: هي queries أو APIs تجيب البيانات.
Transform: الـqueries اللي تغير شكل البيانات إلى شكل مناسب للتعامل معاها.
Load: هي queries تنقل البيانات هذي إلى الويرهاوس.
وأكيد دام وصلنا لهنا، بكذا بيجي دور الـData modeling
ETLs هي scripts أو jobs تستخرج لك البيانات من مصادر كثيرة وتحولها إلى الويرهاوس.
Extract: هي queries أو APIs تجيب البيانات.
Transform: الـqueries اللي تغير شكل البيانات إلى شكل مناسب للتعامل معاها.
Load: هي queries تنقل البيانات هذي إلى الويرهاوس.
وأكيد دام وصلنا لهنا، بكذا بيجي دور الـData modeling
15
ونقصد بمصطلح الـData modeling تحديد البيانات اللي تحتاج تجمعها من العالم الحقيقي، وكيف تنظمها في جداول في قاعدة البيانات بشكل مفيد ومنظم.
على سبيل المثال، لو كان عندك جدول للعملاء فيعتبر مودل العميل الخاص فيك هو عناوين وأسماء وإيميلات العملاء ولكن من منظور عملك، بالتالي مودل عميلك يعتمد عليك أنت كمؤسسة إذا كنت في قطاع طيران مثلًا فـ تحتاج أرقام الجوازات وإذا كنت في قطاع صحي تحتاج إلى أمراض مزمنة مرتبطة بهذول العملاء وما إلى ذلك.
ونقصد بمصطلح الـData modeling تحديد البيانات اللي تحتاج تجمعها من العالم الحقيقي، وكيف تنظمها في جداول في قاعدة البيانات بشكل مفيد ومنظم.
على سبيل المثال، لو كان عندك جدول للعملاء فيعتبر مودل العميل الخاص فيك هو عناوين وأسماء وإيميلات العملاء ولكن من منظور عملك، بالتالي مودل عميلك يعتمد عليك أنت كمؤسسة إذا كنت في قطاع طيران مثلًا فـ تحتاج أرقام الجوازات وإذا كنت في قطاع صحي تحتاج إلى أمراض مزمنة مرتبطة بهذول العملاء وما إلى ذلك.
16
وبرضو ممكن نقصد بالـData modeling طريقة تخزين البيانات وغيرها اللي يخلينا نتبع طريقة معينة في النمذجة "CRUD" وراح أتكلم عنها في ثريد ثاني باذن الله.
-
ثالث طبقة
الـData storage layer
خلاص خلصت تحويل بيانات وأنبسطت؟ تعال يا حبيبي وخزنها عشان لا تضيع منك وتقدر ترجع لها في أي وقت تحتاجها فيه.
وعشان تخزنها لازم تعرف إنه فيه أنواع مختلفة من قواعد البيانات ولكن راح نتكلم بشكل عام عن الـtransactional و analytical.
وبرضو ممكن نقصد بالـData modeling طريقة تخزين البيانات وغيرها اللي يخلينا نتبع طريقة معينة في النمذجة "CRUD" وراح أتكلم عنها في ثريد ثاني باذن الله.
-
ثالث طبقة
الـData storage layer
خلاص خلصت تحويل بيانات وأنبسطت؟ تعال يا حبيبي وخزنها عشان لا تضيع منك وتقدر ترجع لها في أي وقت تحتاجها فيه.
وعشان تخزنها لازم تعرف إنه فيه أنواع مختلفة من قواعد البيانات ولكن راح نتكلم بشكل عام عن الـtransactional و analytical.
17
الـtransactional databse
يتم إنشاء الـtransactional databse عشان تدعم التطبيقات اللي تستخدم الجداول.
ومن امثلتها:-
-MySQL
-Oracle
-PostgreSQL
-SQLite
-SQL Server
الـtransactional databse
يتم إنشاء الـtransactional databse عشان تدعم التطبيقات اللي تستخدم الجداول.
ومن امثلتها:-
-MySQL
-Oracle
-PostgreSQL
-SQLite
-SQL Server
18
الـanalytical database
تم تصميمها بحيث إنها تسهل لنا الـqueries اللي تستخدم في التحليلات، مثلًا لو بكتب query تجيب لي متوسط سعر منتجات معينة في جدول وعمود معين او الـ variance لنقاط متعددة الخ..
من امثلتها:-
-BigQuery
-Hydra
-Redshift
-Snowflake
-Vertica
الـanalytical database
تم تصميمها بحيث إنها تسهل لنا الـqueries اللي تستخدم في التحليلات، مثلًا لو بكتب query تجيب لي متوسط سعر منتجات معينة في جدول وعمود معين او الـ variance لنقاط متعددة الخ..
من امثلتها:-
-BigQuery
-Hydra
-Redshift
-Snowflake
-Vertica
19
طيب بعد عرفنا أقسامها الرئيسية، الآن خلونا نفهم ايش يعني داتا ويرهاوس أو مستودعات البيانات.
وهي عبارة عن قواعد بيانات تستخدم لتخزين البيانات بغرض تحليلها وممكن إنها تكون على كلاود، مثل: Google Cloud Platform وMicrosoft Azure
وللإستزادة، قد سمعت بمصطلح بحيرات البيانات أو الـData Lakes؟ باختصار هي عبارة عن مخازن بيانات ولكن لبيانات غير منظمة، يعني ملفات csv أو فيديوهات أو جيسون تتجمع في الـData Lakes وبعد كذا تستخدمها وترتبها وتنظمها وفي الاخير تحللها.
طيب بعد عرفنا أقسامها الرئيسية، الآن خلونا نفهم ايش يعني داتا ويرهاوس أو مستودعات البيانات.
وهي عبارة عن قواعد بيانات تستخدم لتخزين البيانات بغرض تحليلها وممكن إنها تكون على كلاود، مثل: Google Cloud Platform وMicrosoft Azure
وللإستزادة، قد سمعت بمصطلح بحيرات البيانات أو الـData Lakes؟ باختصار هي عبارة عن مخازن بيانات ولكن لبيانات غير منظمة، يعني ملفات csv أو فيديوهات أو جيسون تتجمع في الـData Lakes وبعد كذا تستخدمها وترتبها وتنظمها وفي الاخير تحللها.
20
رابعًا واخيرًا
الـData analysis layer
طبقة تحليل البيانات هي آخر طبقة في الـData stack وأحيانًا تتسمى طبقة ذكاء الاعمال "BI"، وهي اللي تقوم فيها بإنشاء الجداول والرسمات اللي بتشاركها مع الناس وتوريهم إنك فاهم ورهيب.
وأيضًا تتضمن tools لذكاء الاعمال عشان تسوي visualization وتدخل وتتعمق في تفاصيل البيانات، مثل:-
-Looker
-Metabase
-Mode
-Power BI
-Redash
-Superset
-Tableau
رابعًا واخيرًا
الـData analysis layer
طبقة تحليل البيانات هي آخر طبقة في الـData stack وأحيانًا تتسمى طبقة ذكاء الاعمال "BI"، وهي اللي تقوم فيها بإنشاء الجداول والرسمات اللي بتشاركها مع الناس وتوريهم إنك فاهم ورهيب.
وأيضًا تتضمن tools لذكاء الاعمال عشان تسوي visualization وتدخل وتتعمق في تفاصيل البيانات، مثل:-
-Looker
-Metabase
-Mode
-Power BI
-Redash
-Superset
-Tableau
انتهى.
جاري تحميل الاقتراحات...