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

StackOverflow https://stackoverflow.com/questions/390784

سؤال

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

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

  • باستخدام Excel لتعديل البيانات، لذلك من الأسهل قليلا استيراد
  • استيراد جدول البيانات بأكمله إلى جدول مؤقت ثم يستورد مع SQL
  • كتابة البرنامج النصي واستيراد البيانات معها (لقد استخدمت VBScript و C # والآن روبي)

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

ولكن قبل أن أفعل ذلك، أنا فضولي، هل هناك طريقة أفضل؟

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

المحلول

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

بمجرد تحميل الملف، تحتاج إلى إجراء التحقق من الصحة والاستيراد. يمكنك استخدام ADO.NET أو تدفق الملفات أو DTS / SSIS أو أتمتة Office للقيام بذلك (إذا كنت تستخدم Microsoft Stack). في جزء التحقق من الصحة، يجب عليك إخبار المستخدم بالضبط ما فعلوه خطأ أو بحاجة إلى التغيير. قد يشمل ذلك وجود صفحة التحقق من الصحة تحتوي على البيانات الفعلية في DataGrid وتوفير الملصقات الحمراء مع الأخطاء في الصف / العمود الدقيق. إذا كنت تستخدم أتمتة Office، فيمكنك منحها رقم الخلية الدقيق، لكن المكتب PIA هو ألم في الرقبة.

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

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

نعم، هذا هو الكثير من العمل، ولكن في الخطأ الطويل، عندما يكون هناك برنامج يعمل 95٪ من الوقت، يفوز الجميع.

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

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

نصائح أخرى

بلى .. هذا فقط تمتص.

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

إنها التفاصيل الصغيرة التي ستقتلك في هذا الأمر، بطبيعة الحال، ولكن بشكل عام، كان لدي نجاحا في تصدير البيانات ك CSV من Excel، ثم قرأته باستخدام Rool أو برنامج نصي، في Munging عليه حسب الحاجة، وإدخاله وبعد اعتمادا على عجب بيئتي، يمكن القيام بذلك باستخدام واجهة قاعدة بيانات إلى لغة البرمجة النصية، وصولا إلى إدراج بيانات إدراج SQL في ملف نصي.

هناك حزم CSV جيدة متاحة ل بيثون, روبي, ، و بات.

DSL هي الطريقة للذهاب.

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

نظرة بسيطة تبدو فقط على القيم الموجودة في جداول البيانات، وليس الصيغ الأساسي. تصدير جدول البيانات حيث يمنحك نص علامة تبويب الوصول إلى ذلك. إذا كنت بحاجة إلى الوصول إلى الصيغ، فأنت أفضل من تمثيل XML، إما جدول بيانات XML، أو تنسيق Office XML.

قد تكون قادرا على التوصل إلى DSL في Excel. التي يمكن أن تسمح لمستخدميك الأكثر ذكاء القيام به (جزء من) التعيين.

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