سؤال

وهنا مشكلة مثيرة للاهتمام.

لدي قاعدة بيانات أوراكل تحتوي على معلومات الاسم والعنوان والتي يجب أن تظل محدثة.

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

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

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

هل كانت مفيدة؟

المحلول

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

على سبيل المثال، الحل الخاص بشركة Oracle لهذه المشكلة هو المنتج "جودة بيانات Oracle (ODQ) لـ Oracle Data Integrator (ODI)"، والذي يعد جزءًا من مكدس Fusion Middleware الخاص بهم.كما يوحي الاسم، يتطلب ODQ ODI (أي أنه عبارة عن وحدة إضافية مرخصة بشكل منفصل وتعتمد على ODI).

تتضمن مجموعة حلول Websphere الخاصة بشركة IBM (التي تم الحصول عليها من خلال عملية الاستحواذ Ascential) ما يلي: مرحلة الجودة.

تمتلك Business Objects، وهي الآن إحدى شركات SAP، نطاقًا جودة البيانات المنتج ضمن مجموعة إدارة معلومات المؤسسة (EIM).

تشمل العلامات التجارية الرئيسية الأخرى لجودة البيانات داتافلوكس (شركة SAS) و برنامج تريليوم (شركة هارت هانكس)

تُصدر مجموعة Gartner تقريرًا سنويًا بعنوان Magic Quadrant لمجموعات حلول جودة البيانات.عادةً ما يجعل البائعون الذين حصلوا على تقييم جيد في Magic Quadrants التقرير بأكمله متاحًا عبر الإنترنت للمستخدمين المسجلين على موقعهم على الويب (مثال 1, مثال 2).

نصائح أخرى

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

يتطلب مهارات برمجية، ولكنه مجاني ويمكن تشغيله على جهاز كمبيوتر محمول، بدلاً من خادم ضخم.

وهنا لمحة عامة عن كيف تعمل.

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

  1. كنت أتوقع أن ينظر البرنامج إلى الملف بأكمله ويحدد ذلك - على سبيل المثال - إذا كان العمود A يحتوي على أسماء العائلة في 98 من أصل 100 صف، فيجب أن يكون العمود A هو عمود الاسم الأخير.هذا ليس صحيحا؛تتم معالجة كل سجل على حدة.

  2. إذا كنت تعرف بالضبط ما هي البيانات الموجودة في أي مجال، فيمكنك إخبار البرنامج بذلك وسوف يتعامل معها.ولكن إذا لم تكن متأكدًا دائمًا، فمن الأفضل أن تعطيه السلسلة بأكملها وتسمح للبرنامج بمعرفة ذلك.مثال على ذلك هو حقل الاسم الأخير الذي يحتوي على شيء مثل "Smith Jr MD".إذا أعلنت أنه عمود الاسم الأخير، فسوف يفترض أن الاسم الأخير هو "Smith Jr MD".ولكن إذا مررت بـ "John Smith Jr MD" وسمحت للبرنامج بمعرفة ذلك، فسوف يتعرف على جميع البتات بشكل صحيح.

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

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

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

  6. كما أن لديها عددًا كبيرًا من ميزات جودة البيانات التي تساعد على تبرير شراء البرنامج ولكنها تتطلب جهدًا مخصصًا للتعلم والتطبيق.

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

  8. أخيرًا، أدركنا أن معالجة "John Smith" ومعالجة "Annabelle DiGiovanni" هما وحشان مختلفان تمامًا عندما تحاول تحديد ما إذا كان شخصان في عنوانين مختلفين متماثلين بالفعل.يمكنك ضبط البرنامج بحيث يتم إعطاء الأسماء غير المألوفة وزنًا أكبر في المباراة مقارنة بالأسماء الشائعة، ولكن من لديه الوقت؟تبلغ دقة عملية المطابقة لدينا حوالي 80%، ونحن راضون عن معالجة نسبة 20% المتبقية يدويًا.

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

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

أيضًا، تحتوي خدمات تكامل SQL Server (أعلم أنك تستخدم Oracle) على مكون يقوم بإجراء مطابقة "غامضة" على السلاسل، مما يسمح لك بالعثور على تطابق قريب بدلاً من التطابق المباشر بين شخصين.يطلق عليه بحث غامض.في الأساس، يمنحك نتيجة، ويخبرك بمدى قرب التطابق بين المدخلين...يمكنك بعد ذلك تعيين عتبات لإخبارها بمدى القرب الذي يجب أن تكون عليه لاعتبارها مطابقة (أي.في حدود 80٪ أو أيا كان).

في الماضي، لقد استخدمت أيضا سونديكس لتحديد ما إذا كانت الأسماء متشابهة في تحديد التكرارات.هناك الكثير من تطبيقات SOUNDEX.

حظ سعيد.

المصطلح الخاص بالمشكلة التي تريد حلها هو "ربط السجلات".

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

لقد تمكنت من العثور على حل واحد مفتوح المصدر، اسمه فبراير.تم تطوير هذه الأداة في الأصل لعالم الأبحاث الطبية الحيوية ، والذي يفسر اسم "ربط السجل الطبي الحيوي القابل للتوسيع بحرية". يمكنك قراءة المزيد عنه هنا: "التقنيات المتوازية واسعة النطاق لربط السجلات عالية الأداء"

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

كل مزود رئيسي لديه الحل الخاص به.Oracle وIBM وSAS Dataflux وما إلى ذلك وكل منها يدعي أنه الأفضل.

تقييم مستقل تم التحقق منه:

كانت هناك دراسة أجريت في مركز جامعة كيرتن لربط البيانات في أستراليا والتي قامت بمحاكاة مطابقة 4.4 مليون سجل.حدد ما لدى مقدمي الخدمة من حيث الدقة (عدد التطابقات التي تم العثور عليها مقابل المتاحة.عدد المطابقات الخاطئة)

  1. مؤسسة داتا ماتش, ، أعلى دقة (> 95%)، سريعة جدًا، منخفضة التكلفة
  2. مرحلة الجودة في آي بي إم دقة عالية (> 90%)، سريعة جدًا، عالية التكلفة (> 100 ألف دولار)
  3. تدفق بيانات SAS، دقة متوسطة (> 85%)، سريعة، تكلفة عالية (> 100 ألف)

وكان هذا أفضل تقييم مستقل يمكن أن نجده، وكان شاملاً للغاية.

لقد فعلت شيئًا كهذا في قوائم تسجيل العضوية لشركة تأمين.لحسن الحظ كان لدينا رقم الضمان الاجتماعي (SSN) لتحديد العضو الأساسي، ولكن كان علي أن أقرر ما إذا كان المُعالون جددًا أم موجودين (بالاسم فقط).لقد جربت خوارزمية soundex كجزء من الحل، ولكن لا يبدو أنها تناسب الفاتورة، لأنها يبدو أنها تربط العديد من الأسماء المختلفة لنفس الشيء (وتميل العديد من العائلات إلى تسمية أطفالهم بأسماء تبدو متشابهة).انتهى بي الأمر فقط باستخدام (على ما أظن) الأحرف الأربعة الأولى من المعالين الاسم الأول كمعرف فريد ، ووصفه بأنه "جيد بما فيه الكفاية". لا أعرف كيف سأتعامل مع عائلة جورج فورمان :-)

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

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

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

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

من الخيارات المجانية، هناك أيضًا ريليس.

إستعملت dataladder.com لمجموعة بيانات كبيرة من الأسماء.لقد قاموا بعمل رائع في مطابقة قواعد بيانات مختلفة باستخدام هجاءات مختلفة جدًا وقص الكثير من التكرارات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top