תבנית Google Cloud ל-Neo4j

התבנית Google Cloud to Neo4j מאפשרת לייבא מערך נתונים למסד נתונים של Neo4j באמצעות משימת Dataflow, תוך שימוש בנתונים מקובצי CSV שמתארחים בקטגוריות של Cloud Storage. הוא גם מאפשר לכם לשנות את הנתונים בשלבים שונים של הייבוא. אפשר להשתמש בתבנית גם לייבוא ראשוני וגם לייבוא מצטבר.

הדרישות לגבי צינורות עיבוד נתונים

  • מכונת Neo4j פעילה
  • קטגוריה של Cloud Storage
  • מערך נתונים לייבוא, בפורמט של קובצי CSV
  • קובץ מפרט משרה לשימוש

יצירת קובץ מפרט משרה

קובץ מפרט העבודה מורכב מאובייקט JSON עם המקטעים הבאים:

  • config: דגלים גלובליים שמשפיעים על אופן הייבוא.
  • sources: הגדרות של מקורות נתונים (רלציוניים).
  • targets: הגדרות של יעדי נתונים (גרף: צמתים/קשרים).
  • actions: פעולות לפני או אחרי טעינה.

מידע נוסף זמין במאמר יצירת קובץ מפרט עבודה במסמכי העזרה של Neo4j.

פרמטרים של תבניות

פרמטרים נדרשים

  • jobSpecUri: הנתיב לקובץ הגדרת העבודה, שמכיל את תיאור ה-JSON של מקורות הנתונים, יעדי Neo4j ופעולות.

פרמטרים אופציונליים

  • neo4jConnectionUri: הנתיב לקובץ ה-JSON של חיבור Neo4j.
  • neo4jConnectionSecretId: מזהה הסוד של מטא-נתוני החיבור ל-Neo4j. אפשר להשתמש בערך הזה כחלופה לערך neo4jConnectionUri.
  • optionsJson: אובייקט JSON שנקרא גם אסימונים בזמן ריצה. לדוגמה, {token1:value1,token2:value2}. Spec can refer to $token1 and $token2.. ברירת המחדל היא ריק.
  • readQuery: החלפה של שאילתת SQL. ברירת המחדל היא ריק.
  • inputFilePattern: החלפת הנתיב של קובץ הטקסט. לדוגמה: gs://your-bucket/path/*.json. ברירת המחדל היא ריק.
  • disabledAlgorithms: אלגוריתמים שמופרדים בפסיקים וצריך להשבית. אם הערך הזה מוגדר כ-none, אף אלגוריתם לא מושבת. חשוב להשתמש בפרמטר הזה בזהירות, כי יכול להיות שיש אלגוריתמים שמושבתים כברירת מחדל בגלל פגיעויות או בעיות בביצועים. לדוגמה, SSLv3, RC4.
  • extraFilesToStage: נתיבים ב-Cloud Storage או סודות ב-Secret Manager של קבצים להעברה זמנית לעובד, מופרדים בפסיקים. הקבצים האלה נשמרים בספרייה ‎ /extra_files בכל עובד. לדוגמה, gs://<BUCKET_NAME>/file.txt,projects/<PROJECT_ID>/secrets/<SECRET_ID>/versions/<VERSION_ID>.

הפעלת התבנית

המסוף

  1. עוברים לדף Dataflow Create job from template (יצירת משימה מתבנית).
  2. כניסה לדף Create job from template
  3. בשדה שם המשימה, מזינים שם ייחודי למשימה.
  4. אופציונלי: בשדה Regional endpoint (נקודת קצה אזורית), בוחרים ערך מהתפריט הנפתח. אזור ברירת המחדל הוא us-central1.

    רשימת האזורים שבהם אפשר להריץ משימת Dataflow מופיעה במאמר מיקומי Dataflow.

  5. בתפריט הנפתח Dataflow template (תבנית של העברת נתונים), בוחרים באפשרות the Google Cloud to Neo4j template.
  6. בשדות הפרמטרים שמופיעים, מזינים את ערכי הפרמטרים.
  7. לוחצים על הפעלת העבודה.

gcloud

במעטפת או בטרמינל, מריצים את התבנית:

gcloud dataflow flex-template run JOB_NAME \
    --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/Google_Cloud_to_Neo4j \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --parameters \
       jobSpecUri=JOB_SPEC_URI,\
       neo4jConnectionUri=NEO4J_CONNECTION_URI,\

מחליפים את מה שכתוב בשדות הבאים:

  • JOB_NAME: שם ייחודי של המשימה לפי בחירתכם
  • VERSION: הגרסה של התבנית שבה רוצים להשתמש

    אפשר להשתמש בערכים הבאים:

    • latest כדי להשתמש בגרסה העדכנית של התבנית, שזמינה בתיקיית ההורה ללא תאריך בדלי – gs://dataflow-templates-REGION_NAME/latest/
    • שם הגרסה, כמו 2023-09-12-00_RC00, כדי להשתמש בגרסה ספציפית של התבנית, שאפשר למצוא אותה בתיקיית האב המתאימה עם התאריך בדלי – gs://dataflow-templates-REGION_NAME/
  • REGION_NAME: האזור שבו רוצים לפרוס את עבודת Dataflow, לדוגמה: us-central1
  • JOB_SPEC_URI: הנתיב לקובץ הגדרת העבודה
  • NEO4J_CONNECTION_URI: הנתיב למטא-נתונים של חיבור Neo4j

API

כדי להריץ את התבנית באמצעות API בארכיטקטורת REST, שולחים בקשת HTTP POST. מידע נוסף על ה-API ועל היקפי ההרשאות שלו זמין במאמר projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
{
   "launchParameter": {
     "jobName": "JOB_NAME",
     "parameters": {
       "jobSpecUri": "JOB_SPEC_URI",
       "neo4jConnectionUri": "NEO4J_CONNECTION_URI",
     },
     "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/Google_Cloud_to_Neo4j",
     "environment": { "maxWorkers": "10" }
  }
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט שבו רוצים להריץ את משימת Dataflow Google Cloud
  • JOB_NAME: שם ייחודי של המשימה לפי בחירתכם
  • VERSION: הגרסה של התבנית שבה רוצים להשתמש

    אפשר להשתמש בערכים הבאים:

    • latest כדי להשתמש בגרסה העדכנית של התבנית, שזמינה בתיקיית ההורה ללא תאריך בדלי – gs://dataflow-templates-REGION_NAME/latest/
    • שם הגרסה, כמו 2023-09-12-00_RC00, כדי להשתמש בגרסה ספציפית של התבנית, שאפשר למצוא אותה בתיקיית האב המתאימה עם התאריך בדלי – gs://dataflow-templates-REGION_NAME/
  • LOCATION: האזור שבו רוצים לפרוס את עבודת Dataflow, לדוגמה: us-central1
  • JOB_SPEC_URI: הנתיב לקובץ הגדרת העבודה
  • NEO4J_CONNECTION_URI: הנתיב למטא-נתונים של חיבור Neo4j

המאמרים הבאים