أكثر

لماذا لا تقوم أداة الانقسام بإرجاع أي سجلات في جدول البيانات؟

لماذا لا تقوم أداة الانقسام بإرجاع أي سجلات في جدول البيانات؟


لقد كنت أحاول تقسيم ملف شكل كبير لاستخدام الأرض باستخدام مجموعة من مضلعات منطقة الدراسة كميزة تقسيم ، ولكن عندما تنتهي الوظيفة أخيرًا (مجموعة بيانات استخدام الأرض كبيرة جدًا) ، فإن جميع ملفات الأشكال التي تم إنشاؤها بواسطة التقسيم تكون فارغة. لقد حاولنا أيضًا استخدام كمبيوتر آخر ، لكننا وجدنا نفس النتيجة ، وكلاهما يستخدم ArcGIS 10 مع SP2.

هل هناك أي سبب لهذا الأمر؟ هل هناك أي منهجيات بديلة من شأنها أن تحقق نتيجة مماثلة للتقسيم؟

تحرير: لنكون أكثر تحديدًا: الحقل المقسم هو FID في شكل نصي ولم نواجه أي أخطاء تتعلق بحقول الإدخال. تحتوي مضلعات منطقة الدراسة بالكامل على استخدامات الأراضي.


تحتوي أدوات الانقسام على خطأ في ArcGIS 10 SP2. تقوم الأداة بإجراء الانقسام ، ولكنها تترك جميع الميزات فارغة. تم تسجيل Esri بهذا الخطأ وتوصي في الوقت الحالي ، إذا كنت تريد استخدام أداة الانقسام ، فقم بخفض إصدار ArcGIS إلى SP1. أقترح عليك زيارة هذا الرابط http://resources.arcgis.com/es/gallery/file/geoprocessing/details؟entryID=6C5D9A77-1422-2418-7F6C-01564409B1AF ، حيث وجدت أداة تقسيم بديلة لـ ArcGIS 10 SP2 ، يحتوي هذا على تفاصيل واحدة فقط ، عند معالجة التقسيم يولد جميع ميزات الإخراج ، بما في ذلك الميزات بدون ميزات ، بعد تنفيذ هذه الأداة يجب التحقق من الميزات ومسح الميزات الفارغة.


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

في تجربتي مع ArcGIS وتحليل المتجهات ، يمكن أن تكون ملفات الأشكال عربات التي تجرها الدواب حول مجموعات المعالم الكبيرة مع العديد من العقد / الرؤوس والحواف المشتركة (على سبيل المثال ، العديد من مجموعات بيانات الاستخدام الأرضي).


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


لقد كتبت هذا البرنامج النصي لأداء نفس وظيفة أداة التقسيم. إذا كنت تقوم بتقسيم فئة ميزة كبيرة ، فقد ترغب في تغيير ميزات النسخ لشيء آخر. كانت فئة الميزات التي قسمتها صغيرة.

import arcpy، os arcpy.env.workspace = "" list = [] # أدخل القيم التي تقسمها عادةً أو تعبئتها باستخدام طريقة إدخال أخرى = file # قم بتغيير هذا إلى FC الذي تقوم بتقسيم الطبقة = الإدخال + "_ lyr" arcpy.management.MakeFeatureLayer (المدخلات ، الطبقة) للعنصر في القائمة: query = "" #add query statement arcpy.management.SelectLayerByAttribute (layer، "NEW_SELECTION"، query) output = "" #add base output file name arcpy.management .CopyFeatures (layer، output، "#"، "#"، "#"، "#") arcpy.management.Delete (layer)

لا تتردد في أخذ هذا وتحسينه. انا مازلت اتعلم


استكشاف أخطاء مهام الترحيل وإصلاحها في AWS Database Migration Service

بعد ذلك ، يمكنك العثور على موضوعات حول استكشاف الأخطاء وإصلاحها باستخدام AWS Database Migration Service (AWS DMS). يمكن أن تساعدك هذه الموضوعات في حل المشكلات الشائعة باستخدام AWS DMS وقواعد بيانات نقطة النهاية المحددة.

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


مجموعات البيانات وأطر البيانات

مجموعة البيانات هي مجموعة موزعة من البيانات. Dataset هي واجهة جديدة تمت إضافتها في Spark 1.6 توفر مزايا RDDs (الكتابة القوية ، والقدرة على استخدام وظائف lambda القوية) مع مزايا محرك التنفيذ المحسن Spark SQL & # 8217s. يمكن إنشاء مجموعة بيانات من كائنات JVM ثم معالجتها باستخدام عمليات تحويل وظيفية (خريطة ، خريطة مسطحة ، مرشح ، إلخ). تتوفر Dataset API في Scala و Java. لا تدعم Python واجهة API الخاصة بمجموعة البيانات. ولكن نظرًا للطبيعة الديناميكية لـ Python & # 8217s ، فإن العديد من مزايا واجهة برمجة تطبيقات مجموعة البيانات متاحة بالفعل (على سبيل المثال ، يمكنك الوصول إلى حقل الصف بالاسم بشكل طبيعي row.columnName). حالة R مماثلة.

DataFrame هو ملف مجموعة البيانات منظمة في أعمدة مسماة. إنه مكافئ من الناحية المفاهيمية لجدول في قاعدة بيانات علائقية أو إطار بيانات في R / Python ، ولكن مع تحسينات أكثر ثراءً تحت الغطاء. يمكن إنشاء إطارات البيانات من مجموعة واسعة من المصادر مثل: ملفات البيانات المهيكلة أو الجداول في الخلية أو قواعد البيانات الخارجية أو RDDs الموجودة. يتوفر DataFrame API في Scala و Java و Python و R. في Scala و Java ، يتم تمثيل DataFrame بواسطة مجموعة بيانات من Row s. في Scala API ، يعد DataFrame ببساطة اسمًا مستعارًا من نوع Dataset [صف]. بينما في Java API ، يحتاج المستخدمون إلى استخدام Dataset & ltRow & gt لتمثيل DataFrame.

خلال هذا المستند ، سنشير غالبًا إلى مجموعات بيانات Scala / Java الخاصة بالصف s على أنها إطارات بيانات.


كيفية إصلاحها: استبدل السمات متعددة القيم بوظائف الانضمام

من خلال استبدال كل سمة متعددة القيم بوظيفة الصلة ، يمكننا جعل Powershell ينشئ سلسلة واحدة ، باستخدام أي حرف نحدده لربط القيم. في الأمثلة الخاصة بي ، على سبيل المثال ، & # 8217 م باستخدام الفواصل المنقوطة.

الأمر الأصلي (بدون وظيفة الانضمام)

ملحوظة: هذا هو نفس الأمر تمامًا ، باستخدام مستخدم أفضل (& # 8220seth & # 8221) لتوضيح النتائج.

النتيجة: لا قيم.

أمر جديد ، يستبدل السمة بوظيفة ربط لتلك السمة

النتيجة: جميع & # 8220proxyaddresses & # 8221 القيم متسلسلة بواسطة الفواصل المنقوطة.

(ملحوظة: تم تجهيز جميع لقطات شاشة Excel التالية باستخدام تنسيق & # 8220 كجدول & # 8221 بعد فتح نتائج CSV ، لتسهيل المراجعة / الاستهلاك.)


تقسيم قائمة باستخدام SplitBy ، عن طريق مقارنة العناصر المتجاورة [مكرر]

افترض أن لدي القائمة التالية تسمى Mylist:

أرغب في تقسيم قائمتي بحيث يتم وضع "سلسلة من العناصر المتتالية" في نفس القائمة الفرعية. هنا ، سأحدد "عنصرين متتاليين" كأرقام حقيقية تختلف في 0.1. يمكن أن يكون العنصر الثاني إما 0.1 أكبر من أو 0.1 أقل من العنصر الأول ، على الرغم من أنه في الواقع يكون أكثر منطقية إذا كان العنصر الثاني يمكن أن يكون 0.1 فقط أكبر من العنصر الأول. (في طلبي الفعلي ، تكون قائمتي عبارة عن قائمة بالأوقات [أي الوقت المنقضي] ، بالثواني ، على سبيل المثال. يتم أخذ عينات من نظامي كل 0.1 ثانية. لا يتحرك الوقت أبدًا للخلف ، على الأقل في عالمي!)

إذن النتيجة التي أريدها هي:

أعتقد أن SplitBy سيكون مناسبًا لهذا التطبيق:

SplitBy [قائمة ، و] انشقاقات قائمة إلى قوائم فرعية تتكون من مجموعات من العناصر المتتالية التي تعطي نفس القيمة عندما F يتم تطبيقه.

ومع ذلك ، عند النظر في الوثائق ، ليس من الواضح بالنسبة لي كيف يتم تعريف "العناصر المجاورة". في الرياضيات 7 تقول "مزيد من المعلومات":

ينفذ SplitBy مقارنات فقط على عناصر أزواج متجاورة.

وبالتالي ، ماذا أستخدم؟ لقد حاولت:

لكن لا يعمل. هل تحدد SplitBy "فتحات" منفصلة للعنصر الأول والثاني من الزوج؟ شكرا على وقتك.


يوفر Lessmsi سطر أوامر بالإضافة إلى تطبيق تفاعلي لاسترداد أي سمة من ملف msi.

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

سطر الأوامر لسرد جدول الخصائص إلى وحدة التحكم (للأسف ، لا يمكن التقاطها باستخدام إعادة توجيه الإخراج البسيط & gt.csv)

بالنظر إلى أن ملف MSI يخزن الخصائص العامة في قاعدة بيانات داخلية ، يمكنك في الواقع الاستعلام عنها باستخدام VBScript و SQL.

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

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

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

الأمر أعلاه يعادل:

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

لاحظ أن & ltabsolute_path_to_extract_to & gt يمكن أن يشير إلى دليل غير موجود (سيُنشئ الأمر الدلائل اللازمة أو يفشل).

إذا كنت تكره واجهة مستخدم التثبيت لأي سبب من الأسباب ، يمكنك إلحاق الخيار / qr ، والذي سيؤدي إلى "تقليل" واجهة المستخدم وربما إزالتها دون الإضرار بعملية تسجيل الملكية. كن حذرًا - إذا انتقلت إلى "أقل" من واجهة المستخدم المخفضة (بمعنى / qb | / passive أو / qn | / quiet) ، فقد تفقد & ltmsi_property_logfile & gt بعض الخصائص.


إعداد Samba4 AD DC وتشغيله ، لكنه فاز & # 39t بالتواصل مع Windows 7 أو 10

لقد حصلت على إعداد Samba 4 AD DC قيد التشغيل على Ubuntu 18.04 LTS. لقد استخدمت هذا البرنامج التعليمي لإنجاحه:

المشكلة هي أنه لا يمكنني الحصول على عملاء Windows 7 أو 10 للاتصال بالمجال.

اسم مضيف الخادم هو adc1. تقوم klist بإرجاع المسؤول الذي تم إنشاؤه ، لذا فهو متصل:

وتعمل أداة السامبا لقائمة المستخدمين:

ومع ذلك ، لن يؤدي توصيل Windows 7 Pro إلى إرجاع ping على اسم المضيف ، ولن يتصل بوحدة التحكم. إذا قمت بإجراء اختبار ping على اسم المضيف mvposerver.lan ، والذي يعيد عنوان IP على الخادم نفسه ، فلن يتم حله:

إذا قمت باختبار اتصال اسم Samba NETBIOS ، فسيتم إرجاع IP:

أعلم أيضًا أن Kerberos يعمل ، لأنه في نظام التشغيل Windows 7 ، إذا قمت بإنشاء mvposerver في المجال الخاص بي بدلاً من mvposerver.lan ، فإنه يطلب مني الاتصال باستخدام بيانات الاعتماد ، ولكن بعد ذلك تظهر الأخطاء بعد:

لا يمكنني أيضًا اختبار اتصال google.com أو أي اسم مجال آخر من عميل Windows مرة واحدة على DNS من خلال DC. يمكنني تنفيذ الأمر ping google.com من خادم DC في المحطة الطرفية على ما يرام ، ويمكنني أيضًا تنفيذ الأمر ping 8.8.8.8 من العميل ، وليس حل المجال.

لقد قمت بتثبيت Bind9 ، إعداد سجلات DNS ، والآن لن يقوم الخادم باختبار اتصال اسم المضيف الخاص به ، ولا يزال العميل كذلك. لكن العميل لديه الإنترنت الآن.

لقد قمت بتحديث سجلات DNS الخاصة بي وعملت DNS ، والآن أصبح لدى العميل الإنترنت ويكتشف أسماء المضيف بشكل صحيح:

حتى الآن يجد العميل وحدة تحكم المجال DC حسب اسم المضيف على ما يرام ، وحتى أنه يجد اسم المضيف وعنوان IP ، لكنه لا يمكنه العثور على برنامج DC قيد التشغيل ، على الرغم من أن Samba يقول إنه موجود.


هل هناك ثغرة أمنية في إعداد إدخال DNS عام إلى عنوان IP خاص؟

لقد قمت مؤخرًا بإعداد تكوين شبكة خادم Wireguard مع خادم منزلي وأجهزة عميل. لدي مجال رئيسي واحد أتمنى توجيه كل شيء من خلاله عبر المجالات الفرعية (في هذا المثال ، abc.example.com ، def.example.com ، إلخ). آمل أن أستخدم nginx للقيام بهذا التوجيه.

هو ممكن / آمن / موصى به للتسجيل أ نشر عنوان IP (خاصة خادم منزلي داخل شبكة Wireguard، أي 10.27.0.1/24) في DNS عام (مثل google DNS) ، بحيث إذا قمت بتشغيل ping abc.example.com ، فستستعيد 10.27.0.1؟ لقد وجدت بعض الأسئلة التي تجيب على سؤال قريب من هذا السؤال (هذا السؤال يغطي عنوان IP الخاص لـ DNS العام لسجلات MX ، وهذا السؤال يتحدث عن وجود سجلات A دون ذكر الكثير عن VPN) ، والصورة العامة التي أحصل عليها من هذه الروابط هو أنه ممكن ، ولكن ليس كذلك من الناحية الفنية مثالي نظرًا لأن المتسلل يحصل على جزء صغير من المعلومات حول شبكتك المحلية (شبكة wireguard هي 10.27.0.1/24. ليست هذه نقطة خلافية نسبيًا نظرًا لأنها خلف واقي الأسلاك ، على افتراض أن لدي جميع فحوصات الأمان المعتادة (لا بعيد ssh (الجذر أو غير ذلك) ما لم يكن على شبكة wireguard ، أو fail2ban ، أو لا توجد مصادقة كلمة مرور لـ ssh ، وما إلى ذلك)؟

لا يمكن الوصول إلى عنوان IP (10.27.0.1) إلا من خلال شبكة Wireguard ، لذلك لا يمكنني الوصول إليه فكر في سيعرض الخدمات على الإنترنت. أريد أن أفعل ذلك حتى لا أضطر إلى إعداد إدخالات DNS المحلية على كل جهاز ، لأنني لا أعتقد أن هذا ممكن على الهاتف ، وسيكون من المثالي إجراء تغيير واحد [أي اضبط إدخال DNS على 10.27.0.1] ثم اجعل كل جهاز يقوم فقط بتشغيل استعلام DNS بسيط لـ abc.example.com. سيكون لهذا أيضًا فائدة إضافية تتمثل في فتح منفذ Wireguard فقط ، وإبقاء جدار الحماية مغلقًا لمدة 80 + 443.

النتيجة الطبيعية لهذا السؤال هي أفضل طريقة لإدارة الشهادات / SSL إذا كان ذلك ممكنًا؟ تمكنت من الحصول على عمل certbot من خلال تعريض المنفذ 80 مؤقتًا على الخادم الخاص بي للحصول على شهادات abc.example.com ، ثم إغلاق 80 للوصول فقط إلى خادم الويب عبر Wireguard من خلال منفذ wireguard + nginx. يمكنني بالفعل رؤية جانب سلبي واحد لهذه الطريقة - الاضطرار إلى فتح المنفذ 80 يدويًا في كل مرة يريد فيها certbot الحصول على شهادات جديدة (أعتقد أن هذا افتراضيًا يكون كل 60 يومًا). أفهم أن Wireguard آمن تقريبًا مثل SSL / HTTPS ، ولكن بالنسبة إلى الوسواس القهري الشخصي الخاص بي ، أفضل أن يكون الاتصال مؤمنًا من خلال https أعلى Wireguard. أنا مشكوك فيه إلى حد ما بشأن تفاصيل إدارة الشهادات لأحرف البدل ، ولكن هل يمكنني فعل ذلك باستخدام example.com الرئيسي الخاص بي (الذي يشير إلى موقع يواجه الإنترنت) وجعله ينتشر إلى النطاقات الفرعية ، مما يسمح بتجديده من خلال ذلك ؟ (يبدو أن هذا السؤال يشير إلى ذلك)

هدفي على المدى الطويل هو توسيع هذا إلى شبكة تتضمن العائلة / الأصدقاء المقربين كنوع من "الإنترانت" لمشاركة الصور واستخدام الخدمات الأخرى ذاتية الاستضافة.


قم بإنشاء طبقة لجرائم القتل في الجاموس

أولاً ، ستنشئ طبقة تحتوي فقط على جرائم القتل في Buffalo.

  1. إذا لزم الأمر ، افتح مشروع Homicides Unsolved في ArcGIS Pro.
  2. في جزء المحتويات ، قم بإلغاء تحديد City_Black_Unsolved_Rates وحدد جرائم القتل.

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

يظهر جزء ميزات التصدير. تم بالفعل اختيار طبقة Homicides كطبقة معالم إدخال.

يمكنك إنشاء تعبير لتصدير مجموعة فرعية فقط من كل جرائم القتل. ستقوم بإنشاء تعبير للتأكد من أن الطبقة التي تم تصديرها تحتوي فقط على جرائم القتل التي حدثت في Buffalo.

يتم تشغيل الأداة ويتم إضافة طبقة Buffalo_Homicides إلى الخريطة. تحتوي هذه الطبقة فقط على جرائم القتل التي حدثت في بوفالو.

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


حول تشكيل البيانات

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

يمكّنك تحديد سمات البيانات من اكتشاف العديد من الأشياء المهمة حول بياناتك. تتضمن بعض النتائج الشائعة ما يلي:

مجال أكواد المنتج الصالحة

مجموعة من الخصومات على المنتجات

الأعمدة التي تحمل نمط عنوان البريد الإلكتروني

علاقة رأس بأطراف بين الأعمدة

الانحرافات والقيم المتطرفة داخل الأعمدة

العلاقات بين الجداول حتى لو لم تكن موثقة في قاعدة البيانات

يحتوي هذا القسم على المواضيع التالية:

استخدامات تنميط البيانات

يتيح لك استخدام وظيفة إنشاء ملفات تعريف البيانات في Warehouse Builder ما يلي:

بيانات ملف التعريف من أي مصدر أو مجموعة من المصادر التي يمكن لـ Warehouse Builder الوصول إليها.

استكشف نتائج تحليل البيانات بتنسيق جدولي أو رسومي.

تعمق في البيانات الفعلية المتعلقة بأي نتيجة تحديد سمات.

اشتق قواعد البيانات ، إما يدويًا أو تلقائيًا ، بناءً على نتائج تحليل البيانات.

قم بإرفاق أي قاعدة بيانات بكائن هدف وحدد إجراءً لتنفيذه في حالة فشل القاعدة.

قم بإنشاء مدقق بيانات من قاعدة بيانات لمواصلة مراقبة جودة البيانات التي يتم تحميلها في كائن.

اشتق مؤشرات الجودة مثل تقييمات ستة سيجما.

ملف تعريف أو اختبار أي قواعد بيانات تريد التحقق منها قبل وضعها.

أنواع تنميط البيانات

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

الشكل 10-2 ثلاثة أنواع من التنميط البيانات

تحليل السمات

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

الشكل 10-3 توصيف البيانات في أداة إنشاء المستودعات

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

يوضح الجدول 10-1 سمة نموذجية ، رمز الوظيفة ، يمكن استخدامها لتحليل النمط.

الجدول 10-1 نموذج الأعمدة المستخدمة لتحليل الأنماط

يوضح الجدول 10-2 النتائج المحتملة من تحليل النمط ، حيث يمثل D رقمًا ويمثل X حرفًا. بعد الاطلاع على النتائج ومعرفة أن سياسة الشركة لجميع رموز الوظائف تكون بتنسيق DDD-X-DD ، يمكنك اشتقاق قاعدة بيانات تتطلب جميع القيم في هذه السمة لتتوافق مع هذا النمط.

جدول 10-2 نتائج تحليل الأنماط

يحدد تحليل المجال نطاقًا أو مجموعة من القيم شائعة الاستخدام داخل السمة من خلال التقاط القيم الأكثر تكرارا. على سبيل المثال ، تم وصف عمود الحالة في جدول العملاء وتكشف النتائج أن 90٪ من القيم هي من بين القيم التالية: "متزوج" ، "فردي" ، "مطلقة". يكشف المزيد من التحليل والتعمق في البيانات أن الـ 10٪ الأخرى تحتوي على إصدارات بها أخطاء إملائية من هذه الكلمات مع استثناءات قليلة. يحدد تكوين التشكيل الجانبي عندما يتم تأهيل شيء ما كمجال ، لذلك قم بمراجعة التكوين قبل قبول قيم المجال. يمكنك بعد ذلك السماح لـ Warehouse Builder باشتقاق قاعدة تتطلب أن تكون البيانات المخزنة في هذه السمة واحدة من القيم الثلاث التي تم تأهيلها كمجال.

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

يوفر تحليل المفاتيح الفريد معلومات لمساعدتك في تحديد ما إذا كانت إحدى السمات مفتاحًا فريدًا أم لا. يقوم بذلك من خلال النظر في النسب المئوية للقيم المميزة التي تحدث في السمة. يمكنك تحديد أنه يجب وضع علامة على السمات ذات القيم المميزة بحد أدنى 70٪ لتحليل مفتاح فريد. على سبيل المثال ، باستخدام تحليل مفتاح فريد ، يمكنك اكتشاف أن 95٪ من القيم الموجودة في عمود EMP_ID فريدة. يكشف التحليل الإضافي لـ 5٪ الأخرى أن معظم هذه القيم إما مكررة أو خالية. يمكنك بعد ذلك اشتقاق قاعدة تتطلب أن تكون جميع الإدخالات في عمود EMP_ID فريدة وليست خالية.

التبعية الوظيفية

يكشف تحليل التبعية الوظيفية عن معلومات حول علاقات الأعمدة. يمكّنك هذا من البحث عن أشياء مثل تحديد سمة واحدة لسمة أخرى داخل الكائن.

يوضح الجدول 10-3 محتويات جدول الموظفين حيث تعتمد السمة "موقع القسم" على رقم قسم السمة. لاحظ أن رقم قسم السمة لا يعتمد على السمة موقع القسم.


شاهد الفيديو: Dixie Cups - Iko Iko