تعتبر GraphQL مشكلة كبيرة: لماذا لا تعتبر معيار الصناعة للاستعلام عن قواعد البيانات؟

ألا تستطيع حضور Transform 2022؟ تحقق من جميع جلسات القمة في مكتبتنا عند الطلب الآن! انظر هنا.

أصبحت GraphQL سريعًا لغة استعلام الانتقال للشركات للتفاعل مع بياناتها. على الرغم من أن إدارة البيانات تمثل مصدر قلق كبير للعديد من الشركات ، إلا أن العديد من الأشخاص لا يفهمون حقًا ما تفعله GraphQL أو سبب شهرتها.

في المتوسط ​​، يولد العالم حوالي 2.5 كوينتيليون بايت من البيانات يوميًا. تحتاج الشركات إلى طريقة لجمع هذه البيانات واستخدامها بفعالية. يتم إنشاء الكثير من البيانات في التطبيقات (على سبيل المثال ، تطبيق خدمة عملاء الهاتف الذكي الذي يتيح للعملاء إخبارك ما إذا كانوا سعداء أو ما إذا كانوا يواجهون مشاكل ويحتاجون إلى المساعدة في استكشاف الأخطاء وإصلاحها). تحتاج التطبيقات إلى طريقة لتمرير المعلومات إلى الواجهة الخلفية ؛ أي إدارة البيانات وأدوات التخزين. ثم يمكن تحليل البيانات للكشف عن المشاكل وتطوير الحلول. وبالطبع ، فهو ثنائي الاتجاه. لا ترسل التطبيقات البيانات إلى الخلفيات فحسب ، بل تحتاج التطبيقات إلى بيانات من الخلفية. على سبيل المثال ، التوصيات وحالة التسليم وأرصدة الحسابات. وهذا ما تهدف GraphQL إليه: نقل البيانات من الواجهة الخلفية وإليها. هذه واجهة برمجة تطبيقات أكثر حداثة تربط التطبيقات بالخلفية.

على الرغم من أن العديد من قادة التكنولوجيا قد سمعوا عن GraphQL ، فمن المحتمل أنهم سمعوا الكثير عن SQL (لغة الاستعلام الهيكلية). SQL هي أساسًا معيار الصناعة للاستعلام عن قواعد البيانات ، على الرغم من تزايد شعبية GraphQL.

كيف تقارن GraphQL بـ SQL ، وهل هناك طريقة للاستفادة من كليهما عند تشغيل الاستعلامات؟

تتميز GraphQL بتنسيق بسيط نسبيًا وقابل للقراءة للوصول إلى البيانات. يسمح التنسيق الفريد بشيء يسمى "التداخل". يشبه التداخل طرح سؤال داخل سؤال آخر للحصول على إجابة أكثر تحديدًا. على سبيل المثال ، بدلاً من مجرد طلب قائمة بجميع الكلاب في مأوى معين ، يمكنك طلب قائمة بكل الكلاب والتفاصيل المتداخلة حول سلالات تلك الكلاب (مأخوذة من مجموعة أخرى كاملة ، أو حتى من ثلث مصدر بيانات الحزب).

تتيح قدرة GraphQL تداخل الاستعلامات لمطور الواجهة الأمامية استرداد المعلومات ذات الصلة من واجهة برمجة التطبيقات في طلب بحث واحد. نظرًا لأن GraphQL هي عبارة عن لغة استعلام عالمية تقريبًا ، حيث تتعامل بسهولة مع مصادر البيانات المختلفة ، يمكنك أيضًا الاستعلام عن واجهات برمجة تطبيقات متعددة ومصادر بيانات أخرى في نفس الوقت. وبالتالي فإن GraphQL هي لغة الاستعلام الصحيحة للخلفيات غير المتجانسة ، أي الخلفيات ذات الأنواع المختلفة من مصادر البيانات بالإضافة إلى قواعد البيانات.

لغة SQL شائعة جدًا كلغة استعلام لقواعد البيانات. لسوء الحظ ، لا يعمل مع الاستعلامات المتداخلة على البيانات غير المتجانسة بالطريقة نفسها التي تعمل بها GraphQL. أيضًا ، يمكن أن يكون بناء جملة SQL معقدًا. أخيرًا ، لم يُقصد من SQL أبدًا أن تكون عالمية. يعمل SQL جيدًا مع قواعد البيانات المختلفة ، ولكن ليس جيدًا مع واجهات برمجة التطبيقات.

GraphQL مقابل SQL في العمل

لنفترض أنك تعمل على إعادة تخزين مخزون شركتك وتحتاج إلى معرفة رقم التتبع وتاريخ التسليم المتوقع لطلبين مختلفين تم شحنهما بواسطة شركتين مختلفتين. ستكون GraphQL قادرة على الحصول على كل هذه المعلومات في استعلام واحد.

تعرض لك GraphQL أيضًا هذه المعلومات في هيكل هرمي يجعل من السهل رؤية العلاقة بين عناصر البيانات التي طلبتها. بمعنى آخر ، يمكنك أن ترى أن تاريخ تسليم الحزمة الخاصة بك مرتبط برقم التتبع الذي تلقيته.

بالنسبة إلى SQL ، قد تحتاج إلى الاستعلام عن قاعدة البيانات الخاصة بك للحصول على معلومات عامة حول الأمرين المختلفين. ثم قد تحتاج إلى فرز هذه المعلومات للعثور على أسماء شركات الشحن ، متبوعة بطلب آخر لكل شركة شحن لتتبع الأرقام. أخيرًا ، بناءً على رقم التتبع ، يمكنك تقديم طلب آخر للحصول على تواريخ التسليم المتوقعة. قد يتطلب الحصول على كل هذه المعلومات الكثير من التعليمات البرمجية ، وقد لا يكون من السهل الحصول على النحو الصحيح. أنا شخصياً أعمل مع قواعد بيانات SQL لعقود من الزمن ، وحتى أنني غالبًا ما أضطر إلى البحث في بنية الاستعلامات المعقدة. لماذا لا تزال SQL تحظى بشعبية كبيرة؟ ...

تعتبر GraphQL مشكلة كبيرة: لماذا لا تعتبر معيار الصناعة للاستعلام عن قواعد البيانات؟

ألا تستطيع حضور Transform 2022؟ تحقق من جميع جلسات القمة في مكتبتنا عند الطلب الآن! انظر هنا.

أصبحت GraphQL سريعًا لغة استعلام الانتقال للشركات للتفاعل مع بياناتها. على الرغم من أن إدارة البيانات تمثل مصدر قلق كبير للعديد من الشركات ، إلا أن العديد من الأشخاص لا يفهمون حقًا ما تفعله GraphQL أو سبب شهرتها.

في المتوسط ​​، يولد العالم حوالي 2.5 كوينتيليون بايت من البيانات يوميًا. تحتاج الشركات إلى طريقة لجمع هذه البيانات واستخدامها بفعالية. يتم إنشاء الكثير من البيانات في التطبيقات (على سبيل المثال ، تطبيق خدمة عملاء الهاتف الذكي الذي يتيح للعملاء إخبارك ما إذا كانوا سعداء أو ما إذا كانوا يواجهون مشاكل ويحتاجون إلى المساعدة في استكشاف الأخطاء وإصلاحها). تحتاج التطبيقات إلى طريقة لتمرير المعلومات إلى الواجهة الخلفية ؛ أي إدارة البيانات وأدوات التخزين. ثم يمكن تحليل البيانات للكشف عن المشاكل وتطوير الحلول. وبالطبع ، فهو ثنائي الاتجاه. لا ترسل التطبيقات البيانات إلى الخلفيات فحسب ، بل تحتاج التطبيقات إلى بيانات من الخلفية. على سبيل المثال ، التوصيات وحالة التسليم وأرصدة الحسابات. وهذا ما تهدف GraphQL إليه: نقل البيانات من الواجهة الخلفية وإليها. هذه واجهة برمجة تطبيقات أكثر حداثة تربط التطبيقات بالخلفية.

على الرغم من أن العديد من قادة التكنولوجيا قد سمعوا عن GraphQL ، فمن المحتمل أنهم سمعوا الكثير عن SQL (لغة الاستعلام الهيكلية). SQL هي أساسًا معيار الصناعة للاستعلام عن قواعد البيانات ، على الرغم من تزايد شعبية GraphQL.

كيف تقارن GraphQL بـ SQL ، وهل هناك طريقة للاستفادة من كليهما عند تشغيل الاستعلامات؟

تتميز GraphQL بتنسيق بسيط نسبيًا وقابل للقراءة للوصول إلى البيانات. يسمح التنسيق الفريد بشيء يسمى "التداخل". يشبه التداخل طرح سؤال داخل سؤال آخر للحصول على إجابة أكثر تحديدًا. على سبيل المثال ، بدلاً من مجرد طلب قائمة بجميع الكلاب في مأوى معين ، يمكنك طلب قائمة بكل الكلاب والتفاصيل المتداخلة حول سلالات تلك الكلاب (مأخوذة من مجموعة أخرى كاملة ، أو حتى من ثلث مصدر بيانات الحزب).

تتيح قدرة GraphQL تداخل الاستعلامات لمطور الواجهة الأمامية استرداد المعلومات ذات الصلة من واجهة برمجة التطبيقات في طلب بحث واحد. نظرًا لأن GraphQL هي عبارة عن لغة استعلام عالمية تقريبًا ، حيث تتعامل بسهولة مع مصادر البيانات المختلفة ، يمكنك أيضًا الاستعلام عن واجهات برمجة تطبيقات متعددة ومصادر بيانات أخرى في نفس الوقت. وبالتالي فإن GraphQL هي لغة الاستعلام الصحيحة للخلفيات غير المتجانسة ، أي الخلفيات ذات الأنواع المختلفة من مصادر البيانات بالإضافة إلى قواعد البيانات.

لغة SQL شائعة جدًا كلغة استعلام لقواعد البيانات. لسوء الحظ ، لا يعمل مع الاستعلامات المتداخلة على البيانات غير المتجانسة بالطريقة نفسها التي تعمل بها GraphQL. أيضًا ، يمكن أن يكون بناء جملة SQL معقدًا. أخيرًا ، لم يُقصد من SQL أبدًا أن تكون عالمية. يعمل SQL جيدًا مع قواعد البيانات المختلفة ، ولكن ليس جيدًا مع واجهات برمجة التطبيقات.

GraphQL مقابل SQL في العمل

لنفترض أنك تعمل على إعادة تخزين مخزون شركتك وتحتاج إلى معرفة رقم التتبع وتاريخ التسليم المتوقع لطلبين مختلفين تم شحنهما بواسطة شركتين مختلفتين. ستكون GraphQL قادرة على الحصول على كل هذه المعلومات في استعلام واحد.

تعرض لك GraphQL أيضًا هذه المعلومات في هيكل هرمي يجعل من السهل رؤية العلاقة بين عناصر البيانات التي طلبتها. بمعنى آخر ، يمكنك أن ترى أن تاريخ تسليم الحزمة الخاصة بك مرتبط برقم التتبع الذي تلقيته.

بالنسبة إلى SQL ، قد تحتاج إلى الاستعلام عن قاعدة البيانات الخاصة بك للحصول على معلومات عامة حول الأمرين المختلفين. ثم قد تحتاج إلى فرز هذه المعلومات للعثور على أسماء شركات الشحن ، متبوعة بطلب آخر لكل شركة شحن لتتبع الأرقام. أخيرًا ، بناءً على رقم التتبع ، يمكنك تقديم طلب آخر للحصول على تواريخ التسليم المتوقعة. قد يتطلب الحصول على كل هذه المعلومات الكثير من التعليمات البرمجية ، وقد لا يكون من السهل الحصول على النحو الصحيح. أنا شخصياً أعمل مع قواعد بيانات SQL لعقود من الزمن ، وحتى أنني غالبًا ما أضطر إلى البحث في بنية الاستعلامات المعقدة. لماذا لا تزال SQL تحظى بشعبية كبيرة؟ ...

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow