أكثر

هل يمكنك إجبار cartoDB على قراءة ملف كجدول متزامن


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


إمكانيات المزامنة متاحة فقط للمستخدمين الذين لديهم خطط من John Snow up. إذا كانت لديك الميزة ، فيمكن مزامنة الجدول من واجهة المستخدم أو من واجهة برمجة تطبيقات الاستيراد الخاصة بنا.

إذا لم تكن لديك الميزة ، يمكنك استخدام واجهة برمجة تطبيقات SQL بدلاً من ذلك. هذا يعني أنك ستحتاج إلى الاهتمام بالبيانات واستعادتها من ملف KML بنفسك بحيث يمكنك تضمينها في عبارات INSERT أو UPDATE.

التوثيق الكامل لـ SQL API متاح هنا. إذا كنت تخطط لإنشاء جداول مباشرة من واجهة برمجة تطبيقات SQL هذه ، فالرجاء مراجعة هذا الدليل لأنه يتطلب القيام ببعض السحر (مثل CartoDB في تعديل الجداول).


هل يمكن للعقدة بث معاملة خام موقعة صالحة أثناء المزامنة؟

أنشأ ووقع على bech32 UTXO أصليًا ، ولكن عندما أحاول البث من عقدة testnet الخاصة بي باستخدام الأمر sendrawtransaction ، فإنه يعيد "المدخلات المفقودة". لا أمتلك المفاتيح الخاصة في محفظتي ، ولا تزال عقدة testnet قيد المزامنة ، لكنني تمكنت من بثها بشكل جيد باستخدام خدمة testnet API التي تتيح لك بث المعاملات الموقعة.

هل من الممكن بث معاملة موقعة خام للشبكة أثناء المزامنة؟


1 إجابة 1

تحتاج إلى قراءة كيفية عمل النسخ الاحتياطي والاسترداد. لا يسمح لك WAL بالرحيل إلى الوراء في الوقت المناسب ، فقط المهاجمون.

عند الاستعادة ، عادةً ما تقوم باستعادة ملفات البيانات من النسخة الاحتياطية (على سبيل المثال ، ملف مأخوذ باستخدام pg_basebackup). سيعيدك ذلك إلى لحظة بدء النسخ الاحتياطي. إذا كنت ترغب في المضي قدمًا في الوقت المناسب ، فأنت بحاجة إلى توفير ملفات WAL للتغييرات التي تم إجراؤها منذ النسخ الاحتياطي. في recovery_conf الخاص بك ، يمكنك تحديد استعادة الوقت الذي سبق إسقاط الجدول باستخدام recoveryt_target_time = كما فعلت.

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


2 إجابات 2

يوجد بالفعل شاغلان هنا ، ويتم حلهما في الغالب في مجال الحوسبة الموزعة.

كيف يمكنني اكتشاف البيانات غير المتزامنة؟

يجب أن تحتوي الكائنات الخاصة بك على تعيين إصدار مضمّن. في كل مرة يتم فيها حفظ كائن في التخزين الدائم (سواء كانت قاعدة بيانات علائقية ، أو NoSQL ، أو OODB ، أيا كان) تقوم بزيادة الإصدار.

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

  1. يقوم كلا الجهازين A و B بالمزامنة مع السحابة وتنزيل الإصدار 1 من الكائن.
  2. يقوم المستخدم بتحرير الكائن على الجهاز A ، ثم يشعر بالإحباط بسبب تعطل WiFi.
  3. ينتقل المستخدم إلى الجهاز "ب" ويقوم بتحرير البيانات.
  4. يتزامن الجهاز B مع السحابة: كلا السجلين في الإصدار 1 ، لذلك يقوم بتحميل البيانات وزيادة الإصدار إلى 2.
  5. يعود المستخدم إلى الجهاز "أ" المتصل الآن.
  6. يرى التطبيق أنه يحتوي على الإصدار 1 من السجل ، لكن السحابة بها الإصدار 2 - ستتم مزامنتها ، باستثناء وجود تغييرات محلية. وجه الفتاة! هذه مشكلة وتم اكتشافها بسهولة.

كيف يمكنني حل النزاعات؟

اعتمادًا على طبيعة البيانات ، قد يكون من السهل أو الصعب حل هذا التعارض.

يعمل برنامج التحكم في المصدر بطريقة مماثلة ، حيث يمكن لعدة مستخدمين تحرير الملفات بشكل مستقل. يتتبع الخادم معرفات المراجعة. عندما ينتقل المستخدم للمزامنة ، فإنه يتحقق من المراجعات لمعرفة ما إذا كان هناك تحديث. عادةً ، إذا لم يكن التحديث متعارضًا (أي لم يتم تغيير نفس الأسطر بواسطة مستخدمين منفصلين) فيمكن حله تلقائيًا بواسطة البرنامج. بخلاف ذلك ، قد يتطلب الأمر تدخل المستخدم (تعمل استراتيجيات VCS المختلفة بشكل مختلف قليلاً ولكن سير العمل المفاهيمي متشابه).

هذا في الواقع لا يختلف كثيرًا عن السيناريو الذي قدمته. هناك عاملان رئيسيان هنا:

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

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

قد يكون أحد الخيارات هو عرض شاشة بالسجل ، مع إبراز الحقول المتعارضة التي تختلف في النسختين. قدم الخيارات التالية:

فرض التعديلات المحلية على السحابة ، متجاوزًا الإصدار الأحدث (سيكون هذا الآن الإصدار 3 في المثال أعلاه).


1 إجابة 1

إذا اضطررت إلى إدارة هذا ، فسوف أنظر إلى ما ، إذا كان هناك أي شيء ، يعدل البيانات الموجودة في الجداول خارج عملية ETL.

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

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

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


تحسين أداء إمبالا

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

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

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

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

تحسين أداء الاستعلام

تميل استعلامات إمبالا الأكثر احتياجًا للموارد والأداء إلى أن تكون صلات: تجميع البيانات ذات الصلة من جداول متعددة. بالنسبة لكافة الجداول المتضمنة في استعلامات الانضمام ، قم بإصدار ملف الإحصائيات الحاسوبية البيان بعد تحميل البيانات الأولية في جدول ، أو إضافة بيانات جديدة تغير حجم الجدول بنسبة 30٪ أو أكثر.

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

في نهاية عملية ETL الخاصة بك ، تريد أن تكون البيانات بتنسيق ملف فعال لاستعلامات نمط مستودع البيانات. من الناحية العملية ، يعد تنسيق الباركيه هو الأكثر فاعلية بالنسبة إلى إمبالا. التنسيقات الثنائية الأخرى مثل Avro هي أيضًا أكثر كفاءة من الملفات النصية المحددة.

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

تحسين استخدام الذاكرة

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

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

تزيد أنواع معينة من الجمل من متطلبات الذاكرة. على سبيل المثال ، يتضمن ORDER BY فرز النتائج الوسيطة على العقد البعيدة. (على الرغم من أنه في Impala 1.4 والإصدارات الأحدث ، فإن الحد الأقصى للذاكرة المستخدمة بواسطة ORDER BY أقل مما كان عليه في الإصدارات السابقة ، وعمليات الفرز الكبيرة جدًا تكتب إلى منطقة عمل على القرص للحفاظ على استخدام الذاكرة تحت السيطرة.) تتضمن GROUP BY بناء بيانات في الذاكرة هياكل لتتبع النتيجة الوسيطة لكل مجموعة. تقوم UNION و DISTINCT أيضًا ببناء هياكل بيانات في الذاكرة لتقليم القيم المكررة.

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

تؤدي استدعاءات وظائف التجميع مثل MAX () و AVG () و SUM () إلى تقليل حجم البيانات الإجمالية. تتناسب الذاكرة العاملة لتلك الوظائف نفسها مع عدد المجموعات في عبارة GROUP BY. على سبيل المثال ، تتضمن عملية حساب SUM () لجدول كامل ذاكرة قليلة جدًا نظرًا لأن هناك حاجة إلى متغير واحد فقط للاحتفاظ بالمجموع الوسيط. يتضمن استخدام SUM () في استعلام مع GROUP BY year متغيرًا متوسطًا واحدًا يتوافق مع كل سنة ، ويفترض أنه لا توجد قيم مختلفة كثيرة. استعلام يستدعي دالة تجميعية مع GROUP BY عمود _ فريد يمكن أن تحتوي على الملايين أو المليارات من المجموعات المختلفة ، حيث يمكن أن يكون الوقت والذاكرة لحساب جميع القيم الإجمالية المختلفة كبيرًا.

يقوم عامل التشغيل UNION بعمل أكثر من عامل التشغيل UNION ALL ، لأن UNION تجمع القيم من كلا جانبي الاستعلام ثم تزيل التكرارات. لذلك ، إذا كنت تعلم أنه لن تكون هناك قيم مكررة ، أو أنه لا يوجد ضرر في وجود نسخ مكررة ، فاستخدم UNION ALL بدلاً من UNION.

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

تعتبر عبارة GROUP BY التي تشتمل على عمود STRING أقل كفاءة من استخدام عمود رقمي. هذه إحدى الحالات التي يكون فيها من المنطقي تسوية البيانات ، واستبدال قيم السلسلة الطويلة أو المتكررة بمعرفات رقمية.

على الرغم من أن INT هو أكثر أنواع الأعداد الصحيحة شيوعًا ، إذا كنت تتعامل مع قيم تتناسب مع نطاقات أصغر (مثل 1–12 للشهر و1–31 لليوم) ، فإن تحديد نوع عدد صحيح مناسب "أصغر" يعني جداول التجزئة ، وسيطة مجموعات النتائج ، وما إلى ذلك ، سوف تستخدم 1/2 ، 1/4 ، أو 1/8 أكبر قدر من الذاكرة للبيانات من تلك الأعمدة. استخدم أنواع الأعداد الصحيحة الأخرى (TINYINT و SMALLINT و BIGINT) عندما يكون ذلك مناسبًا بناءً على نطاق القيم.

يمكنك أيضًا التخلص من الحقول المنفصلة المستندة إلى الوقت لصالح عمود TIMESTAMP واحد. تتيح لك وظيفة EXTRACT () سحب الحقول الفردية عند الحاجة إليها.

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

استخدم أحد الأساليب التالية لتقليل استخدام الذاكرة عند الكتابة على طاولات الباركيه:

  • يمكن أن تحدد إمبالا متى يكون ملف إدراج . تحديد في جدول مقسم يستهلك الكثير من الذاكرة بشكل خاص ويعيد توزيع العمل لتجنب الاستخدام المفرط للذاكرة. لكي يكون هذا التحسين فعالاً ، يجب عليك إصدار ملف الإحصائيات الحاسوبية بيان لجدول المصدر الذي يتم نسخ البيانات منه ، بحيث يمكن لـ Impala عمل تقدير صحيح لحجم وتوزيع البيانات التي يتم إدراجها.
  • إذا لم تكن الإحصائيات متاحة للجدول المصدر ، أو كان تقدير الذاكرة التلقائي غير دقيق ، فيمكنك فرض استخدام أقل للذاكرة لـ إدراج البيان بتضمين تلميح [SHUFFLE] مباشرة قبل الكلمة الأساسية SELECT في ملف إدراج . تحديد بيان.
  • تشغيل منفصل إدراج بيان لكل قسم يقلل من عدد مخازن الذاكرة المخصصة في أي وقت. في ال إدراج بيان ، تضمين فقرة PARTITION ( col1 = val1 , عمود 2 = val2 ،…) لتحديد قيم ثابتة لجميع أعمدة مفاتيح القسم.

العمل مع الجداول المقسمة

في Impala ، كما هو الحال في أنظمة مستودعات البيانات واسعة النطاق ، فإن الطريقة الأساسية لمصمم المخطط لتسريع الاستعلامات هي إنشاء جداول مقسمة. يتم تقسيم البيانات فعليًا بناءً على جميع القيم المختلفة في عمود واحد أو مجموعة من الأعمدة ، تُعرف باسم أعمدة مفتاح القسم. يعمل التقسيم مثل الفهارس ، بدلاً من البحث عن صف واحد في كل مرة من العناصر المتناثرة على نطاق واسع ، يتم تجميع الصفوف التي تحتوي على مفاتيح أقسام متطابقة معًا فعليًا. تستخدم إمبالا إمكانات الإدخال / الإخراج السريعة الخاصة بـ HDFS لقراءة جميع البيانات المخزنة في أقسام معينة ، بناءً على الإشارات إلى أعمدة مفتاح القسم في WHERE أو عبارات الانضمام.

مع إمبالا ، يكون التقسيم جاهزًا للخروج من الصندوق دون الحاجة إلى إعداد. من المتوقع عمليًا أن يستخدم كل مستخدم التقسيم لجداوله المؤهلة حقًا باعتبارها بيانات كبيرة.

تعمل الأعمدة التي يتم اختبارها بشكل متكرر مثل YEAR و COUNTRY وما إلى ذلك على إنشاء مفاتيح تقسيم جيدة. على سبيل المثال ، إذا قمت بالتقسيم على عمود YEAR ، فيمكن وضع جميع البيانات الخاصة بسنة معينة معًا على القرص. الاستعلامات التي تحتوي على عبارات مثل WHERE YEAR = 1987 أو WHERE YEAR BETWEEN 2006 و 2009 يمكن أن تبدأ على الفور تقريبًا في البيانات المراد قراءتها ، ثم قراءة تلك البيانات بكفاءة عالية لأن جميع الصفوف تقع بجوار بعضها البعض في عدد قليل من الملفات الكبيرة.

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

يقدم هذا القسم بعض الإرشادات العامة. للحصول على عروض توضيحية لبعض هذه التقنيات ، انظر عمل جدول مقسم.

البحث عن التقسيمات المثالية

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

تذكر أن نظام ملفات HDFS من Hadoop يعمل بشكل أفضل مع عدد صغير نسبيًا من الملفات الكبيرة. (بشكل كبير ، نعني أن النطاق من 128 ميجابايت إلى 1 جيجابايت مثالي ، لا يقل حجمه عن 64 ميجابايت.) إذا قمت بالتقسيم على أعمدة دقيقة الحبيبات بحيث يحتوي كل قسم على القليل جدًا من البيانات ، يتم إدخال / إخراج مجمّع ومتوازي تذهب معالجة Hadoop في الغالب إلى النفايات. وبالتالي ، ستجد غالبًا أن مخطط التقسيم الحالي يحتاج إلى تقليله بمستوى واحد لوضع بيانات كافية في كل قسم.

على سبيل المثال ، إذا تم تقسيم الجدول حسب السنة والشهر واليوم في أيام ما قبل Hadoop ، فقد تحصل على استعلامات أكثر كفاءة عن طريق التقسيم للسنة والشهر فقط في Impala. أو إذا كان لديك جدول قديم مقسم حسب المدينة والولاية ، فربما يتم تقسيم التصميم الأكثر كفاءة لـ Impala فقط حسب الولاية (أو حتى حسب المنطقة). من وجهة نظر Hadoop ، لا تختلف قراءة قسم بحجم 40 ميجابايت عن قراءة قسم بحجم 20 ميجابايت ، ومن غير المرجح أن ترى قراءة 5 ميجابايت فقط فائدة كبيرة من نقاط قوة Hadoop مثل التنفيذ المتوازي. هذا صحيح بشكل خاص إذا كنت تقوم بشكل متكرر بتشغيل التقارير التي تصطدم بالعديد من الأقسام المختلفة ، مثل عند التقسيم إلى اليوم ولكن بعد ذلك تشغيل التقارير لمدة شهر كامل أو عام كامل.

الإدراج في جداول مقسمة

عند الإدراج في جدول مقسم ، تقوم إمبالا مرة أخرى بموازاة هذه العملية. إذا كان يجب تقسيم البيانات عبر العديد من الأقسام المختلفة ، فهذا يعني أن العديد من ملفات البيانات تتم كتابتها في وقت واحد ، مما قد يتجاوز الحدود المفروضة على أشياء مثل واصفات ملفات HDFS. عند الإدراج في جداول باركيه ، يتطلب كل ملف بيانات تتم كتابته مخزنًا مؤقتًا للذاكرة يساوي حجم كتلة الباركيه ، والذي يكون افتراضيًا 1 جيجا بايت لإمبالا. وبالتالي ، فإن ما يبدو وكأنه عملية غير ضارة نسبيًا (نسخ 10 سنوات من البيانات إلى جدول مقسم حسب السنة والشهر واليوم) يمكن أن يستغرق وقتًا طويلاً أو حتى يفشل ، على الرغم من انخفاض الحجم الإجمالي للمعلومات. هنا مرة أخرى ، من الأفضل العمل مع أجزاء كبيرة من المعلومات في وقت واحد. إمبالا إدراج يتيح لك بناء الجملة العمل مع قسم واحد في كل مرة:

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

نصيحة محترف

عند تشغيل استعلامات Impala لإنشاء عبارات SQL أخرى ، ابدأ impala-shell بالخيار -B. يمنع هذا الخيار مربعات ASCII حول نتائج الاستعلام ، مما يسهل إعادة توجيه الإخراج أو نسخه ولصقه في ملف نصي. انظر البرنامج التعليمي: Verbose and Quiet impala-shell Output للحصول على أمثلة.

إضافة وتحميل أقسام جديدة

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

انظر Anti-Pattern: A Million Little Pieces لبعض الحيل الأخرى التي يمكنك استخدامها لتجنب التجزئة والاستخدام المفرط للذاكرة عند إدخالها في طاولات باركيه مقسمة.


قم بتكبير القسم: fdisk -u / dev / sda.

p لطباعة جدول الأقسام ، لاحظ رقم sda1 وبدءها ونهايتها ونوعها.

أعد إنشائه باستخدام الأمر n بنفس الرقم (1) ، وابدأ واكتب ولكن بأكبر نهاية (مع الحرص على عدم التداخل مع الأقسام الأخرى). حاول محاذاة الأشياء على حدود ميغا بايت نهايةاجعله من مضاعفات 2048 ناقص 1. غيّر النوع إذا لزم الأمر باستخدام t (بالنسبة للأقسام التي تحتوي على نظام ملفات extX أو btrfs ، يكون الإعداد الافتراضي 83 جيدًا).

ثم w للكتابة و q للإقلاع عن التدخين.

سيكون جدول الأقسام قد تم تعديله لكن النواة لن تكون قادرة على أخذ ذلك في الحسبان حيث يتم تركيب بعض الأقسام.

ومع ذلك ، إذا تم تكبير الأقسام قيد الاستخدام فقط ، فيجب أن تكون قادرًا على إجبار النواة على اتخاذ التخطيط الجديد باستخدام:

إذا فشل ذلك ، فستحتاج إلى إعادة التشغيل. يجب أن يقوم النظام بالتمهيد على ما يرام.

بعد ذلك ، قم بتغيير حجم نظام الملفات بحيث ينتشر إلى حد القسم الموسع:

الذي سيعمل مع ext4 بشكل جيد حتى على FS حي.

لا يمكنك القيام بذلك بأمان أثناء تثبيت القسم ، مما يعني أنك بحاجة إلى تشغيل قسم آخر والقيام بذلك من هناك.

gparted هو واجهة مستخدم رسومية سهلة ولطيفة لهذا الغرض. في تبادل التعليقات المحذوف ، ذكرت أنه لن يبدأ بسبب "لا يمكن الوصول إلى الشاشة" - وهذا يعني أنك لست في X لأنها واجهة مستخدم رسومية ولن تعمل بدون ذلك.

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

لم أقم مطلقًا بتسبب مشكلة في التسبب في مشكلة ، لكن بالطبع قم بإعادة وضعك المهم أولاً.

أعلم أن هذه مشكلة قديمة جدًا ، لكن الكثير من الناس يبحثون عن هذا الحل.

في هذا المثال لديك الحالة النموذجية التالية. في البداية يوجد قسم واحد ، وفي النهاية يوجد قسم مبادلة. إنه ليس جيدًا لأنه يمكن تحميل المبادلة بكثافة ، ونهاية القرص المستدير هي أبطأ جزء منه. ماذا أقترح؟

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

لكن ماذا مع هذا الوضع؟ لا أوصي بتوسيع sda1. أقترح إنشاء أقسام أخرى بعد sda1 و amp sda2 ، مثبتة كـ / home و / usr. في هذه الدلائل يتم تخزين معظم بيانات المستخدم والنظام ، ومن الممكن نقل البيانات بأمان من تلك الدلائل إلى أقسام جديدة.

لكن. (ثانيًا "لكن") إذا كنت لا تزال تريد الاحتفاظ بالهيكل الحالي ، فيجب عليك أولاً إزالة قسم المبادلة. يجب أن تقوم بالمبادلة ، ضع علامة على هذا في / etc / fstab. إذا أخبرك swapon (انظر الرجل) أنه لا يتم استخدام مبادلة ، يمكنك إزالته بواسطة أداة التقسيم (fdisk أو ما شابه ذلك).

عندما لا يكون لديك هذا القسم ، يمكنك تكبير sda1 الخاص بك. باستخدام fdisk ، يجب عليك أولاً طباعة القسم. إنه للتذكر من أين يبدأ. ثانيًا ، قم بإزالة القسم باستخدام مفتاح "d". لا داعي للذعر ، لا شيء مكتوب على القرص الصلب :). بعد الطباعة ترى ، لا يوجد قسم على القرص.

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

بعد هذا الضغط على مفتاح 'w' ، سيؤدي هذا إلى كتابة تقسيم جديد إلى محرك الأقراص. سترى المعلومات التي تمت مزامنتها ، أو فشلت المزامنة. إذا فشلت ، يمكنك استدعاء الأمر partx / dev / sda لإجراء المزامنة. إذا استمر الفشل ، يجب إعادة تشغيل نظامك. بعد إعادة التشغيل ، أعددت قسمًا أكبر حجمًا ، لكن نظام الملفات الموجود عليه لا يزال أصغر. يجب أن تنمو. EXT4 قابل للنمو بسرعة :) ، استخدم resize2fs / dev / sda1 للقيام بذلك.

لا تحتاج إلى إعادة التحميل وما إلى ذلك. أخيرًا ، يجب استعادة قسم المبادلة. ما عليك سوى استخدام fdisk مرة أخرى ، وإنشاء قسم جديد كمبادلة. بعد كتابة "w" ، ستتم استعادة الجهاز sda2. قم بإعداد هيكل المقايضة عليه باستخدام mkswap / dev / sda2 ، وقم بإزالة الملاحظات للمبادلة على / etc / fstab ، ثم قم أخيرًا بإجراء swapon -a. انظر باستخدام swapon أو أعلى أمر ، يتم تنشيط المبادلة.

أعلم أنه تفسير طويل جدًا. آمل أن تكون قابلة للاستخدام لأي شخص. لاحظ ، في رأيي ، أن نظام ملفات xfs أفضل بكثير ، وللأسف لا يدعم هذا fs الانكماش دون النسخ المؤقت إلى مكان بديل ، ولكن نادرًا ما يستخدم التقليص. إنه أمر رائع ، لا يأخذ xfs مكانًا كبيرًا لبيانات التعريف الخاصة به ، وهو أسرع من نواح كثيرة مقارنةً بـ ext4.

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


تحديث أحداث التقويم المرتبطة بـ Outlook

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

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

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


مزامنة بطيئة جدًا على أجهزة الكمبيوتر منخفضة النهاية - ما الذي يجب ترقيته؟

أنا مبتدئ في البيتكوين. أحاول مزامنة عقدة كاملة على جهاز الكمبيوتر الخاص بي منخفض التكلفة: 2g RAM ، ثنائي النواة 2 جيجا هرتز ، 250 جيجا بايت محرك أقراص ثابتة عادي. قم بتثبيت Linux حديثًا. إنه في وضع مجعد. يتم اختبار الاتصال بالإنترنت بسرعة تنزيل تبلغ 5 ميجابايت / سرعة تحميل تبلغ 1 ميجابايت. تمت مزامنة نسبة 15٪ الأولية في غضون أيام قليلة ولكن العملية تتقلب الآن بشكل كبير في غضون أسبوعين إلى سبعة أسابيع. لقد تم تشغيله لمدة شهر و 35٪ فقط في الوقت الحالي. يكفي أن نقول إنها بطيئة للغاية.

أسئلتي الرئيسية هي: إلى أي مدى ستؤدي إضافة بعض ذاكرة الوصول العشوائي إلى تحسين سرعة المزامنة؟ وهل ستؤدي إضافة ذاكرة وصول عشوائي جديدة إلى إعادة تعيين تنزيل blockchain؟ أيضًا ، لقد سمعت مرارًا وتكرارًا أن استخدام SSD HD سيساعد. هل هناك طريقة لنقل تقدمي الحالي بنسبة 35٪ إلى SSD ، أو هل يتعين علي إعادة بدء العملية؟

لقد قمت بالفعل بتعديل هذه الإعدادات: dbcache = 900 ، banscore = 10 ، الإصغاء = 0 ، الخادم = 1 (upnp = 0 يظهر أيضًا على واجهة / خيارات البيتكوين الأساسية ، ولكن ليس في ملف التكوين.). لا أفهم حقًا ما تفعله هذه الإعدادات ، أنا فقط أقوم بإيقاف التوصيات. لذا نأمل أن تكون جيدة (؟).

أنا قلق من أن إدخال ذاكرة الوصول العشوائي سيؤدي إلى & & quot؛ تعيين & & quot؛ تنزيل blockchain وسأضطر إلى بدء المزامنة من 0٪ مرة أخرى. لقد حدث هذا بالفعل لي عندما كنت أقوم بالعبث في إعداد dbcache - والذي سيتعين علي فعله مرة أخرى للاستفادة من أي ذاكرة وصول عشوائي جديدة. (حق؟)


2 إجابات 2

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

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

بقدر ما أستطيع أن أقول أن هذا لم يتم إصداره بعد ، ولكن إذا انتظرت لفترة أطول ، فيجب إتاحته.


شاهد الفيديو: CARTO: Editing HTML and CSS (شهر اكتوبر 2021).