דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. קובץ XML עם יוניק פיילד

קובץ XML עם יוניק פיילד

מתוזמן נעוץ נעול הועבר ארכיון code613m
10 פוסטים 4 כותבים 546 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • א מנותק
    א מנותק
    ארכיטקט
    כתב ב נערך לאחרונה על ידי
    #1

    שלום לכולם, אני רוצה ליצור קובץ XML כ"קדם" דטה בייס, כלומר לייבא מיליוני רשומות לXML ולאחר מכן לייבא את הקובץ לmysql הסיבה היא פשוטה, אינני רוצה לתקשר יותר מידי עם מסד הנתונים, ולהכביד עליו. אני מעדיף שהזלחן יעשה את העבודה שלו בנפרד, ומידי פעם לעדכן את הדטה בייס.

    דא עקא, הואיל ויש לנו בעיה של כפילות ערכים באינדקס, אני רוצה למנוע גם את העבודה הזאת מהדטה בייס, ולכן כבר בXML לסנן את החומר, כך שלא יווצרו כפילויות, האם זה אפשרי (אני בטוח שזה אפשרי באמצעות קוד שיבדוק את זה וימחק את המיותר, השאלה אם זה אפשרי להגן על דבר כזה ברמת הקובץ עצמו??? כבר בכניסת הנתונים וכל זה למנוע עבודה מיותרת של השרת, הואיל ומדובר במיליוני אם לא מילארדי רשומות) ומה הדרך האידיאלית לעשות זאת מבחינת ביצועים (דומני שיהיו שיאמרו לעבוד עם nosql בתור "מקדים" לmysql הואיל והוא יותר קליל בתקשורת איתו, ותומך גם באינדקסים) אם מישהו יודע דבר או חצי דבר על הנושא אשמח לשמוע.

    פורסם במקור בפורום CODE613 ב14/10/2014 12:51 (+03:00)

    אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

    תגובה 1 תגובה אחרונה
    0
    • M מנותק
      M מנותק
      magicode
      כתב ב נערך לאחרונה על ידי
      #2

      לדעתי תשמש עם זה.

      מסד נתונים kay value קטן וטוב. למשל תוכנת ביטקוין עובדת עליו.
      https://www.npmjs.org/package/level

      תשתמש במפתח בתור שדה יחודי וב value תכניס json או איזה ערך שאתה רוצה. ה valve זה מערך של בתים.

      פורסם במקור בפורום CODE613 ב14/10/2014 14:13 (+03:00)

      תגובה 1 תגובה אחרונה
      1
      • א מנותק
        א מנותק
        ארכיטקט
        כתב ב נערך לאחרונה על ידי
        #3

        @magicode

        לדעתי תשמש עם זה.

        מסד נתונים kay value קטן וטוב. למשל תוכנת ביטקוין עובדת עליו.
        https://www.npmjs.org/package/level

        תשתמש במפתח בתור שדה יחודי וב value תכניס json או איזה ערך שאתה רוצה. ה valve זה מערך של בתים.

        אין שום דוקומנטציה??? 2 פקודות זה מה שצריך לדעת? הכנסה ושליפה, אפילו מחיקה ועדכון לא ראיתי שם....

        פורסם במקור בפורום CODE613 ב15/10/2014 14:25 (+03:00)

        אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

        תגובה 1 תגובה אחרונה
        0
        • א מנותק
          א מנותק
          ארכיטקט
          כתב ב נערך לאחרונה על ידי
          #4

          אגב יש לך מושג מה ההבדל בין המחלקה שציטטת לבין

          לבין

          והאם כולם עובדים על אותו מנוע??? ואם כבר התקנתי level והכנסתי נתונים.

          פורסם במקור בפורום CODE613 ב16/10/2014 22:13 (+03:00)

          אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

          תגובה 1 תגובה אחרונה
          0
          • M מנותק
            M מנותק
            magicode
            כתב ב נערך לאחרונה על ידי
            #5

            הכל על אותו מחלקה של leveldown שזה מימוש של leveldb.
            https://github.com/google/leveldb
            לכן כל המחלקות קוראות את זה. רק ש down זה יותר הבסיס. ו up זה תוספות על הבסיס.
            תשתמש ב up.

            פורסם במקור בפורום CODE613 ב16/10/2014 22:27 (+03:00)

            תגובה 1 תגובה אחרונה
            0
            • dovidD מנותק
              dovidD מנותק
              dovid ניהול
              כתב ב נערך לאחרונה על ידי
              #6

              ארכיטקט, "בשביל לא להכביד על מערכת אחת דרושה מערכת אחרת" כך נשמעת השאלה.
              מילא אם המערכת הא' הייתה מיועדת לפעולה אחרת בעיקר, אז מונעים ממנה עומס של פעולה שהיא לא ממוטבת לעשותה, אבל זו אותה פעולה בדיוק.

              הרציונל האמיתי של השאלה כנראה הוא למנוע עומס על המכונה (= מחשב) בה נמצאת מערכת א' משום שהיא איטית/יקרה/ברשת לעומת המכונה של מערכת ב' שמהירה/זולה/מקומית. כך שבעצם לא משנה בכלל המערכות אלא אפשר לעובד בשתיהם בMySql (להתקין גם במכונה בה המחשב "זוחל". אפשר להשתמש במגוון מסדי נתונים אחרים כמובן ואף במה שהציע magicode).

              לגבי הרעיון של XML. סכמת XSD שהיא הנורמה כיום להגדרת נתונים בXML, תומכת בערך בלעדי, ובעוד אילוצים ואף קשרי גומלין. המשמעות של התמיכה הזו מסתכמת בכך שמי שיפר את האילוץ אז המסמך ייחשב ללא תקף. כי XML זה לא מערכת/מנוע/דרך פעולה, זה סה"כ מוסכמה איך לכתוב נתונים. אז זה לא ממש אמור לשנות לך. אתה יכול להחליט היום על מוסכמה כל שהיא, זה יפתור את הבעיה? המימוש של האילוץ של ערך יחידני תמיד נעשה ע"י המחשב, במקרה MySQL אז התוכנה שלהם דואגת לזה, ובXML אז התוכנה שלך היא זו שתעבוד קשה. שים לב שאין מצב שתעשה זאת ביעילות בה עושה זאת הMySql ואף לא תגיע לקרסולי קרסוליה של יעילות זו.

              פורסם במקור בפורום CODE613 ב20/10/2014 13:40 (+03:00)

              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

              בכל נושא אפשר ליצור קשר dovid@tchumim.com

              תגובה 1 תגובה אחרונה
              2
              • א מנותק
                א מנותק
                ארכיטקט
                כתב ב נערך לאחרונה על ידי
                #7

                ראשית תודה רבה לדוד על התשובה המושקעת.
                אסביר את עצמי: אינני מצפה לפרפטום מובילה שתפתור לי את בעיית האנרגיה, אולם אני מסתמך באופן מעט רופף (כלומר מעט רופף והחלק הנותר - לופת) על מבחני ביצועים של mysql מול mongoDB כאשר באופן ברור וחד משמעי mysql הוא חזק הרבה יותר בשליפות, ואילו mongodb חזק מאוד בעדכונים (וזאת עיקר הסיבה שהמציאו את עולם ה nosql) מה שאני מבין מכך ותומך בתזה שלך, שזה כמו סדין קצר, תמשוך לכאן יתקצר שם, כלומר: יעילות בשליפות, זה בגלל שהעדכון של החומר ואיחסונו בדיסק הקשיח נעשה בצורה מיטבית, מה שמביא אותנו לאיטיות בביצועים בעדכונים. ואילו יעילות בעדכונים, זה בגלל שהאיחסון בדיסק הקשיח נעשה בצורה לא מיטבית ולכן התוצאה היא איטיות בשליפות.
                ברור שמנוע חיפוש צריך מקסימום אופטימיזציה בשליפות, ואין חולק על כך. מה שאני רוצה לחסוך זה "רק" את החלק הזה של ייחודיות ה Key, לזרוק את זה על המנוע הלא יעיל של nosql ופעם או פעמיים ביום לעשות תחזוקה של מסד הנתונים המרכזי ע"י הכנסה ועדכון "רק" של הרשומות הדורשות זאת, כלומר מה שכבר קיים בשני הצדדים, אין בו צורך ויימחק מהמאגר, ברור שבצורה כזו אני אמור לחסוך זמן עיבוד.
                אז מה ההבדל בין זה לפרפטום מובילה, אתה יכול לקחת את נהג המשאית עם אופנוע לצפון, שם תמתין לו משאית שסוחבת מאה טון לכיוון ירושלים, אבל אם אתה מניח את המשאית מראש בירושלים כדי להוביל את הנהג לצפון ומשם לקחת את החומר, זה פשוט בזבוז.
                לא עשיתי בדיקת מעבדה של ביצועים, אבל זה נראה באמת ככה (לדוגמא, בויקיפדיה העברית יש כ 37000 קטגוריות, ל level לקח 7 שניות לספור את כמות הרשומות שלו, ואילו ל mysql משהו כמו 2 ms, אבל בהכנסת החומר, באמת היה ל mysql יותר קשה לקח כמה דקות לעשות אינסרט ל 37 אלף רשומות....

                פורסם במקור בפורום CODE613 ב20/10/2014 19:43 (+03:00)

                אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

                תגובה 1 תגובה אחרונה
                0
                • M מנותק
                  M מנותק
                  magicode
                  כתב ב נערך לאחרונה על ידי
                  #8

                  לכל מנוע של מסד נתונים יש יעוד. וגם לא מתאים לך למדוד את הביצועים של מסד נתונים לפי זה.
                  אני ראיתי שאתה מחפש אפשרות לאחסן באופן זמני מידע שמבוסס על שדה יחודי.
                  אז אמרתי תשתמש ב leveldb ששם אתה יכול לאחסן כמויות גדולות של חומר עם מפתח יחודי.
                  וזה בדיוק היעוד שלו. לכן הוא לא סופר את הכמות של המפתחות שנמצאים אצלו.
                  וזה מוביל אותי לשאלה איך הוא לא סופר הרי עם זה עובד לפי חיפוש בינארי הוא חייב לדעת כמה מפתחות יש לו. אחרת הוא הוא ידע מה האמצע? אני יותר נוקט שלא מימשו את הפונקציה count במחלקה וזה כמו שתעשה loop ב mysql שסופר את הכל.

                  מכאן ברור איך mysql שולף ב 2 ms את הcount של הטבלה בזכות זה שהוא יודע שיש שדה יחודי יוצא שכמות השונים באינדקס זהה לגודל הטבלה. אפשר לראות את הגדלים של המספר השדות השונים באינדקס בסטיסטיקה של טבלה בmysql.

                  פורסם במקור בפורום CODE613 ב20/10/2014 23:29 (+03:00)

                  תגובה 1 תגובה אחרונה
                  2
                  • א מנותק
                    א מנותק
                    אהרן
                    כתב ב נערך לאחרונה על ידי
                    #9

                    @ארכיטקט

                    אגב יש לך מושג מה ההבדל בין המחלקה שציטטת לבין

                    לבין

                    והאם כולם עובדים על אותו מנוע??? ואם כבר התקנתי level והכנסתי נתונים.

                    ארכיטקט
                    מימשת את זה?
                    https://www.npmjs.org/package/levelup

                    למישהו פה יש לזה דוגמאות אמיתיות מהחיים?

                    תודה רבה!

                    פורסם במקור בפורום CODE613 ב28/08/2015 16:02 (+03:00)

                    תגובה 1 תגובה אחרונה
                    0
                    • א מנותק
                      א מנותק
                      ארכיטקט
                      כתב ב נערך לאחרונה על ידי
                      #10

                      מימשתי קצת, וכבר שכחתי לגמרי מהפוסט הזה, הפרוייקט הזה נרדם בשלב מסויים, מקוה לעורר אותו לחיים בעזרת הבורא.

                      פורסם במקור בפורום CODE613 ב01/09/2015 10:51 (+03:00)

                      אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

                      תגובה 1 תגובה אחרונה
                      0

                      בא תתחבר לדף היומי!
                      • התחברות

                      • אין לך חשבון עדיין? הרשמה

                      • התחברו או הירשמו כדי לחפש.
                      • פוסט ראשון
                        פוסט אחרון
                      0
                      • דף הבית
                      • קטגוריות
                      • פוסטים אחרונים
                      • משתמשים
                      • חיפוש
                      • חוקי הפורום