SAP أنواع بيانات HANA: رقمية، سلسلة أحرف، عشرية

⚡ ملخص ذكي

SAP تحدد أنواع بيانات HANA ما يمكن تخزينه في كل عمود، وتشمل تصنيفات التاريخ والوقت، والأرقام، والقيم المنطقية، والسلاسل النصية، والبيانات الثنائية، والكائنات الكبيرة، والتصنيفات متعددة القيم، وكل خريطةping إلى نوع تخزين أعمدة محدد.

  • 🗓️ أنواع التاريخ والوقت: تختلف الصيغ DATE و TIME و SECONDDATE و TIMESTAMP من حيث الدقة التي تحتفظ بها.
  • 🔢 النطاق العددي: تغطي الأنواع من TINYINT إلى BIGINT الأعداد الصحيحة، بينما تتعامل الأنواع DECIMAL وSMALLDECIMAL وREAL وDOUBLE مع الكسور.
  • 🔤 سلاسل الأحرف: يحتوي نوع البيانات VARCHAR على البايتات، بينما يحتوي نوع البيانات NVARCHAR على أحرف Unicode، وكلاهما محدود بـ 5000.
  • 📦 كائنات كبيرة: تقوم أنواع البيانات BLOB و CLOB و NCLOB و TEXT و BINTEXT بتخزين بيانات كبيرة جدًا بالنسبة لعمود عادي.
  • 🔍 تم تفعيل البحث: تدعم أنواع البيانات TEXT وBINTEXT وSHORTTEXT البحث في النص الكامل ولكن فقط في جداول تخزين الأعمدة.
  • ✍️ معرفات: تُوضع المعرفات المحددة داخل علامات اقتباس مزدوجة وتقبل أي حرف؛ أما المعرفات غير المحددة فيجب أن تبدأ بحرف.
  • قاعدة الاقتباس: تُستخدم علامات الاقتباس المفردة لتحديد قيمة نصية، بينما تُستخدم علامات الاقتباس المزدوجة لتحديد مُعرّف.

SAP أنواع بيانات HANA

في هذا SAP البرنامج التعليمي لأنواع بيانات HANA، سوف نتعلم:

1) SAP أنواع بيانات هانا - SAP تتضمن أنواع بيانات HANA أوقات التاريخ، ونوع البيانات الرقمية، والمنطقية، وسلسلة الأحرف، وأنواع البيانات الثنائية، وما إلى ذلك.

2) SAP معرفات HANA - المعرفات المحددة والمعرفات غير المحددة

أنواع البيانات في SAP HANA

In SAP قاعدة بيانات هانا، SQL أنواع البيانات هي كما يلي:

تصنيف التصنيف الفرعي نوع بيانات SQL نوع مخزن العمود التنسيق الافتراضي
أنواع أوقات التاريخ التاريخ تاريخ CS_DAYDATE "السنة-الشهر-اليوم"
الوقت: الوقت CS_SECONDTIME 'HH24:MI:SS'
التاريخ الثاني الموعد الثاني CS_LONGDATE 'YYYY-MM-DD HH24:MI:SS'
ختم الوقت الطابع الزمني CS_SECONDDATE 'YYYY-MM-DD HH24:MI:SS.FFn'
أنواع رقمية عدد صحيح صغير صغيرة CS_INT عدد صحيح غير مُوقّع ذو 8 بت، نطاقه من 0 إلى 255
عدد صحيح صغير SMALLINT CS_INT عدد صحيح مُوقّع 16 بت، النطاق من -32,768 إلى 32,767
عدد صحيح INTEGER CS_INT عدد صحيح مُوقّع 32 بت، النطاق من -2,147,483,648 إلى 2,147,483,647
عدد صحيح كبير كبير CS_FIXED(18,0) عدد صحيح مُوقّع 64 بت، النطاق من -9,223,372,036,854,775,808 إلى 9,223,372,036,854,775,807
عشري عشري (ع، ق)
ف الدقة
s- مقياس
CS_FIXED(ملاحظة، ق) يمكن أن تتراوح الدقة p من 1 إلى 38.
يمكن أن يتراوح المقياس من 0 إلى p لـ SAP HANA نوع البيانات العشرية.
إذا لم يتم تحديد الدقة والمقياس، يصبح DECIMAL رقمًا عشريًا بفاصلة عائمة.
عشري صغير رقم عشري صغير CS_SDFLOAT وهو رقم عشري عائم. يجب أن تكون الدقة والمقياس ضمن النطاق 1~16 للدقة و-369~368 للمقياس، اعتمادًا على القيمة المخزنة. SMALLDECIMAL مدعوم فقط لجدول تخزين الأعمدة.
عدد حقيقي ريال CS_FLOAT رقم الفاصلة العائمة 32 بت أحادي الدقة
Double رقم الهاتف DOUBLE CS_مزدوج رقم عشري مزدوج الدقة مكون من 64 بت
تطفو تعويم (ن) CS_مزدوج هو عدد حقيقي مكون من 32 بت أو 64 بت. حيث يحدد n عدد البتات ويجب أن يكون ضمن النطاق بين 1 و53.
منطقية منطقية BOOLEAN CS_INT صحيح، خطأ وغير معروف (فارغ).
سلسلة أحرف سلسلة أحرف ذات طول متغير VARCHAR (ن) CS_STRING نوع بيانات طول سلسلة HANA هذا هو سلسلة أحرف متغيرة الطول، حيث يحدد 'n' الحد الأقصى للطول بالبايتات وهذا عدد صحيح بين 1 و 5000.
حرف Unicode متغير الطول نفارتشار (ن) CS_STRING سلسلة أحرف Unicode ذات طول متغير، حيث يشير إلى الحد الأقصى لطول الأحرف وهو عدد صحيح بين 1 و5000
حرف أبجدي ألفانوم (ن) CS_ALPHANUM أحرف أبجدية رقمية متغيرة الطول، حيث يشير n إلى الحد الأقصى للطول وهو عدد صحيح بين 1 و127
نص قصير نص قصير(ن) CS_STRING هو عبارة عن سلسلة نصية متغيرة الطول توفر ميزات البحث النصي والبحث عن السلاسل النصية. يمكن تعريف هذا النوع من البيانات لجداول تخزين الأعمدة، ولكن ليس لجداول الصفوف.
الأنواع الثنائية نص ثنائي فاربيناري (ن) CS_RAW قم بتخزين البيانات الثنائية ذات الحد الأقصى للطول المحدد بالبايت، حيث يشير n إلى الحد الأقصى للطول وهو عدد صحيح بين 1 و5000.
أنواع LOB (أنواع الكائنات الكبيرة) لوب ثنائي BLOB CS_RAW كميات كبيرة من البيانات الثنائية
حرف لوب كلوب CS_STRING بيانات أحرف ASCII
حرف Unicode LOB نكلوب CS_STRING كائن أحرف Unicode كبير
TEXT TEXT CS_STRING يوفر نوع البيانات TEXT ميزات البحث عن النص. يمكن تحديد نوع البيانات هذا لجداول تخزين الأعمدة، ولكن ليس لجداول تخزين الصفوف.
البيانات النصية الثنائية بينتكست CS_STRING نوع البيانات BINTEXT يشبه نوع البيانات TEXT وبالتالي يدعم ميزات البحث عن النص، ولكن من الممكن إدراج البيانات الثنائية. يمكن تعريف نوع البيانات هذا لجداول الأعمدة، ولكن ليس لجداول الصفوف.
أنواع متعددة القيم مجموعة مجموعة مصفوفة يقوم بتخزين مجموعات من القيم من نفس نوع البيانات حيث يرتبط كل عنصر بموضع واحد بالضبط. يمكن أن تحتوي المصفوفات على قيم فارغة كما في حالة عدم وجود قيمة.

اختيار الحق SAP نوع بيانات HANA

يوضح الجدول أعلاه ما هو متاح. يُعدّ الاختيار الجيد أكثر أهمية في SAP HANA أفضل من قاعدة البيانات القائمة على القرص، لأن كل عمود موجود في الذاكرة، ويستهلك النوع كبير الحجم موردًا نادرًا في كل صف.

أربع قواعد تغطي معظم القرارات:

  • اختر أصغر نوع رقمي مناسب. يحتاج مؤشر الحالة ذو القيم الخمس المحتملة إلى نوع بيانات TINYINT، وليس INTEGER. ويُقاس الفرق في حجم الذاكرة المستخدمة في جدول يحتوي على مليار صف بالجيجابايت.
  • لا تخزن النقود أبدًا في شكل حقيقي أو مضاعف. لا يمكن للأرقام العشرية ذات الفاصلة العائمة تمثيل الكسور العشرية بدقة، لذا فإن المجاميع تختلف بمقدار أجزاء من وحدة العملة. استخدم DECIMAL مع تحديد الدقة والمقياس بشكل واضح.
  • يفضل استخدام NVARCHAR بدلاً من VARCHAR. يحسب نوع البيانات VARCHAR عدد البايتات، بينما يحسب نوع البيانات NVARCHAR عدد الأحرف، لذا فإن أي نص غير ASCII يتم اقتطاعه بشكل غير متوقع في نوع البيانات VARCHAR. حديث SAP تتعامل إصدارات HANA مع VARCHAR على أنها NVARCHAR لهذا السبب تحديدًا.
  • طابق دقة التاريخ مع المتطلبات. يُستخدم التاريخ (DATE) لعرض يوم كامل، بينما يُستخدم التاريخ الثاني (SECONDDATE) عند الحاجة إلى تحديد وقت اليوم، ويُستخدم الطابع الزمني (TIMESTAMP) فقط عند استخدام دقة أقل من ثانية. كل زيادة في الدقة تتطلب مساحة تخزين إضافية في كل صف.

تتطلب أنواع البيانات الكبيرة عناية خاصة. يُعد عمود BLOB أو NCLOB مناسبًا ولكنه ثقيل، ولا يعمل البحث النصي على TEXT أو SHORTTEXT إلا في جداول تخزين الأعمدة، لذا فإن اختيار التخزين واختيار نوع البيانات مرتبطان. يتم تناول خيارات التخزين في SAP هانا SQL البرنامج التعليمي.

SAP معرفات HANA

يتم استخدام المعرفات لتمثيل الاسم في SQL بيان (على سبيل المثال اسم الجدول، اسم العرض، اسم العمود، اسم الفهرس، اسم المرادف، اسم الإجراء، اسم الوظيفة، وما إلى ذلك)

هناك نوعان من المعرفات في SAP HANA: معرفات محددة ومعرفات غير محددة.

  • معرفات محددة - وهو محاط بالفاصلة، Double يقتبس "". يمكن أن يحتوي المعرف على أي حرف بما في ذلك الحرف الخاص.
  • معرفات غير محددة – يجب أن تبدأ المعرفات غير المحددة (اسم الجدول، اسم العمود) بحرف ولا يمكن أن تحتوي على أي رموز بخلاف الرقم أو الشرطة السفلية '_'.

هناك نوعان من علامات الاقتباس لتحديد الحدود على النحو التالي-

  • علامة الاقتباس المفردة (' ') - يتم استخدامه لتحديد السلسلة.
  • Double علامة اقتباس (" ")- يتم استخدامه لتحديد المعرفات.

⚠️ تحذير: يتم تحويل المعرّف غير المحدد إلى أحرف كبيرة عند إنشاء الكائن. إنشاء جدول باسم "employee" ثم اختيار البيانات منه بأحرف صغيرة سيؤدي إلى فشل العملية، لأن الاسم المخزن هو EMPLOYEE. لذا، يُنصح إما بتجنب استخدام علامات الاقتباس المزدوجة تمامًا، أو استخدامها بشكل متسق.

تحويل أنواع البيانات والأخطاء الشائعة

SAP تقوم HANA بالتحويل بين الأنواع المتوافقة تلقائيًا، لكن التحويل الضمني هو المصدر الخفي للنتائج الخاطئة والاستعلامات البطيئة. أما التحويل الصريح فيجعل الغرض واضحًا.

تقوم دالتان بالعمل. تقوم دالة CAST بتحويل القيمة إلى نوع مسمى، وتقوم دوال TO_DATE و TO_VARCHAR و TO_DECIMAL وما شابهها بالتحويل باستخدام سلسلة تنسيق اختيارية.

-- Explicit conversion with CAST
SELECT CAST('1234' AS INTEGER) FROM DUMMY;

-- Conversion with an explicit format
SELECT TO_DATE('2026-07-21', 'YYYY-MM-DD') FROM DUMMY;

-- Number to string with fixed decimals
SELECT TO_DECIMAL(1234.5678, 10, 2) FROM DUMMY;

تُعزى معظم مشاكل التحويل إلى أربعة أخطاء:

  1. تجاوز عددي. إدخال القيمة 40000 في حقل من نوع SMALLINT يفشل لأن نطاق القيم الموقعة يتوقف عند 32,767. تشير الرسالة إلى اسم العمود وليس القيمة، لذا تحقق من التعريف أولاً.
  2. اقتطاع السلسلة النصية. يؤدي تحميل نص أطول من الطول المُعلن عنه إلى ظهور خطأ بدلاً من اقتطاعه بصمت. يتم حساب عدد الأحرف باستخدام نوع NVARCHAR وعدد البايتات باستخدام نوع VARCHAR.
  3. تنسيق التاريخ غير صالح. يؤدي تمرير سلسلة نصية بنمط خاطئ إلى دالة TO_DATE إلى فشل العملية. لذا، يُرجى دائمًا تحديد قناع التنسيق بدلاً من الاعتماد على الإعدادات الافتراضية للجلسة.
  4. التحويل الضمني في جملة WHERE. مقارنة عمود نصي برقم تجبر على إجراء تحويل في كل صف، مما يعيق عملية التصفية الفعالة. حوّل الثابت بدلاً من العمود.

تُغطى رموز المقارنة المستخدمة في هذه المرشحات في SAP مشغلي HANAوالمنصة الأوسع في SAP برنامج تعليمي لـ HANA سلسلة.

الأسئلة الشائعة

يقيس نوع البيانات VARCHAR حدّه بالبايتات، بينما يقيس نوع البيانات NVARCHAR حدّه بأحرف يونيكود. بالنسبة لأي نص قد يحتوي على أحرف غير ASCII، يُعدّ NVARCHAR الخيار الأمثل لأنه لن يُقتطع بشكل غير متوقع.

استخدم الأمر SECONDDATE عندما تكون دقة المستوى الثاني كافية، وهو ما يغطي معظم الأحداث التجارية. أما الأمر TIMESTAMP فيضيف أجزاء من الثانية ويستهلك مساحة تخزين أكبر في كل صف من جدول كبير.

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

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

توفر أنواع البيانات TEXT وBINTEXT وSHORTTEXT ميزات البحث النصي. وتقتصر هذه الأنواع الثلاثة على جداول تخزين الأعمدة، ولا يمكن تعريفها في جداول تخزين الصفوف.

تلخيص هذه التدوينة بـ: