كيفية عمل مذكرة حول أصل الآلهة اليونانية في SAP HANA Cloud

يحتوي SAP هذا العام على حل SAP HANA Cloud جديد يوفر مجموعة كبيرة من الإمكانات للعمل مع البيانات ، ويسمح لك بإنشاء التطبيقات الحالية وتشغيلها ونشرها وتحديثها. أساس هذا الحل هو SAP HANA ، والذي يُستخدم للعمل مع البيانات التي تتطلب سرعة معالجة عالية. نسمي هذه البيانات ساخنة لأنها موجودة في ذاكرة الوصول العشوائي. هذا يضمن الوصول السريع والإنتاجية العالية. بالإضافة إلى ذلك ، يتم دمج بحيرة بيانات في SAP HANA Cloud ، ويتم نشرها تلقائيًا ، وتكون الإدارة مباشرة. إنه علاقي ويسمح لك بتحسين تكلفة تخزين المعلومات المنظمة. هناك بيانات باردة ، بمعنى أنها ستتم معالجتها بشكل أبطأ إلى حد ما من البيانات الساخنة.توفر SAP HANA Cloud أيضًا مستوى وسيطًا لتخزين البيانات - SAP HANA Native Storage Extension ، وتخزين البيانات على القرص والتحميل عبر ذاكرة التخزين المؤقت. توفر إمكانات التخزين المتدرجة معدلًا عاليًا من قابلية التوسع والمرونة ، مما يعمل على تحسين التكاليف دون التضحية بالأداء. أقترح أن أفهم كيف تعمل الحداثة على سبيل المثال في إنشاء علم الأنساب للآلهة والأبطال اليونانيين.



صورة



سنأخذ كأساس البرامج النصية من الملحق ب - مثال الرسم البياني الأساطير اليونانية لوثائق SAP HAN Graph المرجعية لمنصة SAP HANA النموذجية التي يتم نشرها محليًا في مركز البيانات. الغرض الرئيسي من هذا المثال هو إظهار القدرات التحليلية لـ SAP HANA ، لإظهار كيف يمكنك تحليل علاقة الأشياء والأحداث باستخدام خوارزميات الرسم البياني. لن نتطرق إلى هذه التكنولوجيا بالتفصيل ؛ وستكون الفكرة الرئيسية واضحة من مزيد من المناقشة. يمكن لأي شخص مهتم معرفة ذلك بمفرده من خلال اختبار إمكانات إصدار SAP HANA السريع أو أخذ دورة مجانية تحليل البيانات المتصلة باستخدام SAP HANA Graph .



دعونا نضع البيانات في السحابة العلائقية SAP HANA Cloud ونرى إمكانيات تحليل قرابة الأبطال اليونانيين. تذكر ، في "أساطير وأساطير اليونان القديمة" كان هناك الكثير من الشخصيات وبحلول الوسط لم تعد تتذكر من هو ابنه وأخيه؟ هنا سنصنع مذكرة لأنفسنا ولن ننساها أبدًا.



أولاً ، لنقم بإنشاء مثيل لـ SAP HANA Cloud. من السهل جدًا القيام بذلك ، تحتاج إلى ملء معلمات النظام المستقبلي وانتظر بضع دقائق حتى يتم نشر المثيل لك (الشكل 1).



صورة

الشكل 1



لذا ، نضغط على الزر إنشاء مثيل ونعرض علينا الصفحة الأولى من معالج الإنشاء ، والتي نحتاج فيها إلى الإشارة إلى الاسم المختصر للمثيل ، وتعيين كلمة المرور وإعطاء وصف (الشكل 2)



صورة

الشكل 2



نضغط على زر الخطوة 2 ، والآن مهمتنا هي تحديد معلمات مثيل SAP HANA المستقبلي. هنا يمكنك فقط تعيين حجم ذاكرة الوصول العشوائي للنظام المستقبلي ، وسيتم تحديد جميع المعلمات الأخرى تلقائيًا (الشكل 3).



صورة

الشكل 3



نرى أنه لدينا الآن فرصة لاختيار الحد الأدنى للقيمة 30 جيجابايت والحد الأقصى للقيمة 900 جيجابايت. نختار 30 جيجابايت ويتم تحديدها تلقائيًا أنه مع هذا القدر من الذاكرة ، يلزم معالجين افتراضيين لدعم العمليات الحسابية و 120 جيجابايت لتخزين البيانات على القرص. تم تخصيص مساحة أكبر هنا ، حيث يمكننا استخدام تقنية SAP HANA Native Storage Extension (NSE). إذا اخترت حجم ذاكرة أكبر ، على سبيل المثال ، 255 جيجابايت ، فستحتاج إلى 17 معالجًا افتراضيًا و 720 جيجابايت من ذاكرة القرص (الشكل 4).



صورة

الشكل 4



لكننا لا نحتاج إلى الكثير من الذاكرة كمثال. نعيد المعلمات إلى قيمها الأصلية وانقر فوق الخطوة 3. والآن يجب أن نختار ما إذا كان سيتم استخدام بحيرة البيانات. الجواب واضح لنا. متأكد من أننا سوف. نريد أيضًا إجراء مثل هذه التجربة (الشكل 5).



صورة

الشكل 5



في هذه الخطوة ، لدينا المزيد من القوة والحرية لإنشاء مثيل من بحيرة البيانات. يمكنك اختيار حجم موارد الحوسبة المطلوبة وتخزين القرص. سيتم تحديد معلمات المكونات / العقد المستخدمة تلقائيًا. سيحدد النظام نفسه موارد الحوسبة اللازمة للعقد "المنسق" و "العامل". إذا كنت ترغب في معرفة المزيد عن هذه المكونات ، فمن الأفضل أن تتحول إلى موارد SAP IQ وبحيرة بيانات SAP HANA Cloud .... وننتقل ، انقر فوق الخطوة 4.



صورة

الشكل 6



في هذه الخطوة ، سنقوم بتحديد أو تقييد عناوين IP التي يمكنها الوصول إلى مثيل SAP HANA المستقبلي. كما ترى ، هذه هي الخطوة الأخيرة من معالجنا (الشكل 6) ، يبقى النقر فوق إنشاء مثيل والذهاب لسكب بعض القهوة.



صورة

الشكل 7



بدأت العملية (الشكل 7) وسيمر وقت قليل جدًا ، كان لدينا الوقت فقط لشرب القهوة القوية ، على الرغم من وقت متأخر من الليل. ومتى يمكنك تجربة النظام بهدوء وتثبيته على رقائق مختلفة؟ لذا ، تم إنشاء نظامنا (الشكل 8).



صورة

الرقم 8



لدينا خياران: فتح SAP HANA Cockpit أو SAP HANA Database Explorer. نحن نعلم أنه سيكون من الممكن إطلاق المنتج الثاني من Cockpit. لذلك ، نفتح قمرة القيادة SAP HANA ، في نفس الوقت ونرى ما هو موجود. ولكن أولاً ، ستحتاج إلى توفير مستخدم وكلمة المرور الخاصة به. يرجى ملاحظة أن مستخدم النظام غير متاح لك ، يجب عليك استخدام DBADMIN. في نفس الوقت ، حدد كلمة المرور التي قمت بتعيينها عند إنشاء المثيل ، كما في الشكل 9.



صورة

الشكل 9



ذهبنا إلى Cockpit ونرى واجهة SAP التقليدية في شكل بلاط ، عندما يكون كل واحد منهم مسؤولاً عن مهمته الخاصة. في الزاوية اليمنى العليا نرى ارتباطًا إلى وحدة تحكم SQL (الشكل 10).



صورة

الشكل 10



هي التي تسمح لنا بالذهاب إلى SAP HANA Database Explorer.



صورة



تتشابه واجهة هذه الأداة مع SAP Web IDE ، ولكن فقط للعمل مع كائنات قاعدة البيانات. أولاً ، بالطبع ، نحن مهتمون بكيفية الدخول إلى بحيرة البيانات. بعد كل شيء ، لقد فتحنا الآن أداة للعمل مع HANA. دعنا نذهب إلى عنصر المصدر البعيد في المستكشف ونرى ارتباطًا بالبحيرة (SYSRDL ، RDL - Relation Data Lake). هذا هو الوصول المطلوب (الشكل 11).



صورة

الشكل 11



دعنا ننتقل ، لا ينبغي أن نعمل تحت المسؤول. نحن بحاجة إلى إنشاء مستخدم اختبار ، والذي سنختبر بموجبه محرك الرسم البياني HANA ، ولكن ضع البيانات في بحيرة بيانات علائقية.



صورة



النصي:



CREATE USER tstuser PASSWORD Password1 NO FORCE_FIRST_PASSWORD_CHANGE SET USERGROUP DEFAULT;


نخطط للعمل مع بحيرة البيانات ، لذلك من الضروري منح الحقوق ، على سبيل المثال ، HANA_SYSRDL # CG_ADMIN_ROLE ، بحيث يمكنك إنشاء الكائنات بحرية ، والقيام بكل ما نريده.



صورة



النصي:



GRANT HANA_SYSRDL#CG_ADMIN_ROLE TO tstuser;


الآن اكتمل العمل تحت مسؤول SAP HANA ، يمكن إغلاق مستكشف قاعدة بيانات SAP HANA ونحتاج إلى إدخاله تحت المستخدم الجديد الذي تم إنشاؤه: tstuser. من أجل البساطة ، دعنا نعود إلى SAP HANA Cockpit وننهي جلسة المشرف. للقيام بذلك ، يوجد في الزاوية اليسرى العليا مثل هذا الرابط مسح أوراق الاعتماد (الشكل 12).



صورة

الشكل 12



بعد النقر عليه ، نحتاج إلى تسجيل الدخول مرة أخرى ، ولكن الآن تحت المستخدم tstuser (الشكل 13).



صورة

الشكل 13



ويمكننا فتح وحدة تحكم SQL مرة أخرى للعودة إلى SAP HANA Database Explorer ، ولكن تحت مستخدم جديد (الشكل 14).



صورة



صورة

الشكل 14



SCRIPT:



SELECT SESSION_USER, CURRENT_SCHEMA FROM DUMMY;


هذا كل شيء ، نحن الآن على يقين من أننا نعمل مع HANA تحت المستخدم المناسب. حان الوقت لإنشاء جداول في بحيرة البيانات. للقيام بذلك ، هناك إجراء خاص SYSRDL # CG.REMOTE_EXECUTE ، حيث تحتاج إلى تمرير معلمة واحدة - line = command. باستخدام هذه الوظيفة ، نقوم بإنشاء جدول في بحيرة البيانات (الشكل 15) ، والذي سيخزن جميع شخصياتنا: الأبطال ، الآلهة اليونانية وجبابرة.



صورة

الشكل 15



SCRIPT:



CALL SYSRDL#CG.REMOTE_EXECUTE ('
BEGIN

	CREATE TABLE "MEMBERS" (
		"NAME"       VARCHAR(100) PRIMARY KEY,
		"TYPE"       VARCHAR(100),
		"RESIDENCE"  VARCHAR(100)
	);


END');


ثم نقوم بإنشاء جدول سنقوم فيه بتخزين علاقات هذه الشخصيات (الشكل 16).



صورة

الشكل 16



SCRIPT:



CALL SYSRDL#CG.REMOTE_EXECUTE ('
BEGIN
	CREATE TABLE "RELATIONSHIPS" (
		"KEY"    INTEGER UNIQUE NOT NULL,
		"SOURCE" VARCHAR(100) NOT NULL,
		"TARGET" VARCHAR(100) NOT NULL,
		"TYPE"   VARCHAR(100),
		FOREIGN KEY RELATION_SOURCE ("SOURCE") references "MEMBERS"("NAME") ON UPDATE RESTRICT ON DELETE RESTRICT, 
		FOREIGN KEY RELATION_TARGET ("TARGET") references "MEMBERS"("NAME") ON UPDATE RESTRICT ON DELETE RESTRICT 
	);
END');


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



صورة

الشكل 17



SCRIPT:



CALL SYSRDL#CG.REMOTE_EXECUTE ('
BEGIN
	INSERT INTO "MEMBERS"("NAME", "TYPE")
    	VALUES (''Chaos'', ''primordial deity'');
	INSERT INTO "MEMBERS"("NAME", "TYPE")
    	VALUES (''Gaia'', ''primordial deity'');
	INSERT INTO "MEMBERS"("NAME", "TYPE")
    	VALUES (''Uranus'', ''primordial deity'');
	INSERT INTO "MEMBERS"("NAME", "TYPE", "RESIDENCE")
    	VALUES (''Rhea'', ''titan'', ''Tartarus'');
	INSERT INTO "MEMBERS"("NAME", "TYPE", "RESIDENCE")
    	VALUES (''Cronus'', ''titan'', ''Tartarus'');
	INSERT INTO "MEMBERS"("NAME", "TYPE", "RESIDENCE")
    	VALUES (''Zeus'', ''god'', ''Olympus'');
	INSERT INTO "MEMBERS"("NAME", "TYPE", "RESIDENCE")
    	VALUES (''Poseidon'', ''god'', ''Olympus'');
	INSERT INTO "MEMBERS"("NAME", "TYPE", "RESIDENCE")
    	VALUES (''Hades'', ''god'', ''Underworld'');
	INSERT INTO "MEMBERS"("NAME", "TYPE", "RESIDENCE")
    	VALUES (''Hera'', ''god'', ''Olympus'');
	INSERT INTO "MEMBERS"("NAME", "TYPE", "RESIDENCE")
    	VALUES (''Demeter'', ''god'', ''Olympus'');
	INSERT INTO "MEMBERS"("NAME", "TYPE", "RESIDENCE")
    	VALUES (''Athena'', ''god'', ''Olympus'');
	INSERT INTO "MEMBERS"("NAME", "TYPE", "RESIDENCE")
    	VALUES (''Ares'', ''god'', ''Olympus'');
	INSERT INTO "MEMBERS"("NAME", "TYPE", "RESIDENCE")
    	VALUES (''Aphrodite'', ''god'', ''Olympus'');
	INSERT INTO "MEMBERS"("NAME", "TYPE", "RESIDENCE")
    	VALUES (''Hephaestus'', ''god'', ''Olympus'');
	INSERT INTO "MEMBERS"("NAME", "TYPE", "RESIDENCE")
    	VALUES (''Persephone'', ''god'', ''Underworld'');
END');


والجدول الثاني (الشكل 18)



صورة

الشكل 18



النص:



CALL SYSRDL#CG.REMOTE_EXECUTE ('
BEGIN
	INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    	VALUES (1, ''Chaos'', ''Gaia'', ''hasDaughter'');
	INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    	VALUES (2, ''Gaia'', ''Uranus'', ''hasSon'');
	INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    	VALUES (3, ''Gaia'', ''Cronus'', ''hasSon'');
	INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    	VALUES (4, ''Uranus'', ''Cronus'', ''hasSon'');
	INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    	VALUES (5, ''Gaia'', ''Rhea'', ''hasDaughter'');
	INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (6, ''Uranus'', ''Rhea'', ''hasDaughter'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (7, ''Cronus'', ''Zeus'', ''hasSon'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (8, ''Rhea'', ''Zeus'', ''hasSon'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (9, ''Cronus'', ''Hera'', ''hasDaughter'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (10, ''Rhea'', ''Hera'', ''hasDaughter'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (11, ''Cronus'', ''Demeter'', ''hasDaughter'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (12, ''Rhea'', ''Demeter'', ''hasDaughter'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (13, ''Cronus'', ''Poseidon'', ''hasSon'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (14, ''Rhea'', ''Poseidon'', ''hasSon'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (15, ''Cronus'', ''Hades'', ''hasSon'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (16, ''Rhea'', ''Hades'', ''hasSon'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (17, ''Zeus'', ''Athena'', ''hasDaughter'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (18, ''Zeus'', ''Ares'', ''hasSon'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (19, ''Hera'', ''Ares'', ''hasSon'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (20, ''Uranus'', ''Aphrodite'', ''hasDaughter'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (21, ''Zeus'', ''Hephaestus'', ''hasSon'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (22, ''Hera'', ''Hephaestus'', ''hasSon'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (23, ''Zeus'', ''Persephone'', ''hasDaughter'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (24, ''Demeter'', ''Persephone'', ''hasDaughter'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (25, ''Zeus'', ''Hera'', ''marriedTo'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (26, ''Hera'', ''Zeus'', ''marriedTo'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (27, ''Hades'', ''Persephone'', ''marriedTo'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (28, ''Persephone'', ''Hades'', ''marriedTo'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (29, ''Aphrodite'', ''Hephaestus'', ''marriedTo'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (30, ''Hephaestus'', ''Aphrodite'', ''marriedTo'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (31, ''Cronus'', ''Rhea'', ''marriedTo'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (32, ''Rhea'', ''Cronus'', ''marriedTo'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (33, ''Uranus'', ''Gaia'', ''marriedTo'');
INSERT INTO "RELATIONSHIPS"("KEY", "SOURCE", "TARGET", "TYPE")
    VALUES (34, ''Gaia'', ''Uranus'', ''marriedTo'');
END');


الآن دعونا نفتح المصدر البعيد مرة أخرى. بناءً على وصف الجداول في بحيرة البيانات ، نحتاج إلى إنشاء جداول افتراضية في HANA (الشكل 19).



صورة

الشكل 19



نجد كلا الجدولين ، ونضع علامة في المربعات المقابلة للجدول وننقر على زر إنشاء كائن (كائنات) افتراضية ، كما هو موضح في الشكل 20.



صورة

الشكل 20



لدينا القدرة على تحديد المخطط الذي سيتم إنشاء الجداول الافتراضية فيه. وهناك تحتاج إلى تحديد بادئة لتسهيل العثور على هذه الجداول. بعد ذلك ، يمكننا تحديد جدول في المستكشف ، راجع جداولنا ونرى البيانات (الشكل 21).



صورة

الشكل 21



في هذه الخطوة ، من المهم الانتباه إلى المرشح في أسفل اليسار. يجب أن يكون هناك اسم مستخدم أو مخطط TSTUSER الخاص بنا.



كل شيء جاهز تقريبًا. أنشأنا جداول في البحيرة وقمنا بتحميل البيانات فيها ، وللوصول إليها من مستوى HANA ، لدينا جداول افتراضية. نحن على استعداد لإنشاء كائن جديد - رسم بياني (الشكل 22).



صورة

الشكل 22



SCRIPT:



CREATE GRAPH WORKSPACE "GREEK_MYTHOLOGY"
  EDGE TABLE "TSTUSER"."RDL_RELATIONSHIPS"
    SOURCE COLUMN "SOURCE"
    TARGET COLUMN "TARGET"
    KEY COLUMN "KEY"
  VERTEX TABLE "TSTUSER"."RDL_MEMBERS"
    KEY COLUMN "NAME";


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



صورة

الشكل 23



SCRIPT:



SELECT * FROM OPENCYPHER_TABLE( GRAPH WORKSPACE "GREEK_MYTHOLOGY" QUERY
    '
	MATCH p = (a)-[*1..2]->(b)
	WHERE a.NAME = ''Chaos'' AND ALL(e IN RELATIONSHIPS(p) WHERE e.TYPE=''hasDaughter'')
	RETURN b.NAME AS Name
	ORDER BY b.NAME
    '
)


دعونا نتحقق من كيفية عمل أداة تحليل الرسم البياني SAP HANA المرئية. للقيام بذلك ، حدد مساحة عمل الرسم البياني في المستكشف (الشكل 24).



صورة

الشكل 24



والآن يمكنك رؤية الرسم البياني الخاص بنا (الشكل 25).



صورة

الشكل 25.



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



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



صورة

الشكل 26



SCRIPT:



CREATE COLUMN TABLE MEMBERS AS (SELECT * FROM "TSTUSER"."RDL_MEMBERS")


ولكن هناك طريقة أخرى - هذا هو استخدام نسخ البيانات في SAP HANA RAM. يمكن أن يوفر هذا أداء أفضل لاستعلامات SQL من الوصول إلى البيانات المخزنة في بحيرة بيانات باستخدام جدول افتراضي. يمكنك التبديل بين الجداول الافتراضية وجداول النسخ المتماثل. للقيام بذلك ، قم بإضافة جدول النسخة المتماثلة إلى الجدول الظاهري. يمكن القيام بذلك باستخدام عبارة ALTER VIRTUAL TABLE. بعد ذلك ، يصل الاستعلام باستخدام جدول ظاهري تلقائيًا إلى جدول النسخ المتماثلة ، الموجود في SAP HANA RAM. دعونا نرى كيف نفعل ذلك ، لنجري تجربة. دعونا نقوم بتنفيذ مثل هذا الطلب (الشكل 27).



صورة

الشكل 27



SCRIPT:



SELECT R.KEY, R.SOURCE, R.TYPE
FROM "TSTUSER"."RDL_RELATIONSHIPS"  R inner join "TSTUSER"."MEMBERS" M on R.SOURCE=M.NAME


ودعنا نرى كم من الوقت استغرق لإكمال هذا الطلب (الشكل 28).



صورة

الشكل 28



يمكننا أن نرى أن الأمر استغرق 92 ملي ثانية. دعونا تمكين آلية النسخ المتماثل. للقيام بذلك ، تحتاج إلى جعل ALTER VIRTUAL TABLE من الجدول الظاهري ، وبعد ذلك سيتم نسخ بيانات Lake إلى SAP HANA RAM.



صورة



النصي:



ALTER VIRTUAL TABLE "RDL_RELATIONSHIPS" ADD SHARED SNAPSHOT REPLICA COLUMN LOADABLE;


دعنا نتحقق من وقت التنفيذ كما في الشكل 29.



صورة

الشكل 29



حصلنا على 7 مللي ثانية. هذه نتيجة رائعة! بأقل جهد ، قمنا بنقل البيانات إلى ذاكرة الوصول العشوائي. علاوة على ذلك ، إذا انتهيت من التحليل وكنت راضيًا عن الأداء ، فيمكنك إيقاف النسخ المتماثل مرة أخرى (الشكل 30).



صورة

الشكل 30



SCRIPT:



ALTER VIRTUAL TABLE "RDL_RELATIONSHIPS" DROP REPLICA;


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



ألكسندر تاراسوف ، كبير مهندسي الأعمال ، SAP CIS



All Articles