Міндет және алғышарттар

sku кілті бойынша бар өнімді жаңартып, жоқ өнімді оқу SQL кестесіне қосу.

Бұл мысал демонстрациялық деректер мен баптауларды қолданады. Өндірістік қабылдаушыларды қоспас бұрын күтілетін нәтижені өз ортаңызда тексеріңіз. Мына идентификаторлар: demo_* мысал ретінде берілген: редакторда өз оқу қосылымдарыңызды немесе дереккөздеріңізді таңдаңыз. Төмендегі JSON дайын тасымалдау архивін емес, блоктар мен байланыстар құрылымын көрсетеді.

Қолдау көрсетілетін коннекторы және demo_products оқу/жазу құқықтары бар оқу SQL қосылымы қажет. Мысалдың өзі SQL жазуын орындамайды.

Оқу кіріс деректері

demo_products бастапқы күйі:

skunameprice
T01Tea10
C01Coffee20

products.csv

sku;name;price
T01;Tea premium;12.5
J01;Juice;8

Блоктар, байланыстар және нақты баптаулар

Түсіндірме схемаҮлкейту ↗14. SQL: өнім анықтамалығын қосу/жаңарту. Мысал құрылымы: 3 блок, 2 байланыс. Түйін идентификаторлары мен порттары сақталған.
14-ағын схемасы

14-мысал құрылымы: 3 блок, 2 байланыс. Бапталған графтың түйін идентификаторлары мен порттары сақталған.

Конструкторға көрсетілген блоктарды қосып, әрқайсының қасиеттерін ашыңыз және осы мәндерді орнатыңыз. Мына атаулар: demo_* оқу дереккөздері мен қосылымдарын анықтайды.

БлокБаптау
1
Файл
src
  • Рөл: source
  • Дереккөз: demo_products_upsert
  • Оқу баптаулары:
    • Парақ: CSV
    • Ауқым: A1:C3
    • Алғашқы жол — тақырып: так
    • Бөлгіш: ;
2
Сандар мен күндер пішімдері
cast
  • Ережелер:
      • Түрі: number
      • Өріс: price
      • decimal_in: .
      • thousands_in:
      • extract: ні
      • invalid: error
      • Шығыс: number
3
Қосылым
sql
  • Рөл: target
  • Қосылым: demo_sql
  • Сыртқы нысан:
    • Нысан: demo_products
    • Жазу тәсілі: upsert
    • Кілт өрістері: sku

Порт байланыстары

  • src out → cast in
  • cast out → sql in
JSON түріндегі толық граф конфигурациясы
{
  "version": 3,
  "nodes": [
    {
      "id": "src",
      "type": "file",
      "label": "src",
      "config": {
        "role": "source",
        "source_id": "demo_products_upsert",
        "options": {
          "sheet": "CSV",
          "range": "A1:C3",
          "header": true,
          "delimiter": ";"
        }
      }
    },
    {
      "id": "cast",
      "type": "number_format",
      "label": "cast",
      "config": {
        "rules": [
          {
            "kind": "number",
            "field": "price",
            "decimal_in": ".",
            "thousands_in": "",
            "extract": false,
            "invalid": "error",
            "output": "number"
          }
        ]
      }
    },
    {
      "id": "sql",
      "type": "connection",
      "label": "sql",
      "config": {
        "role": "target",
        "connection_id": "demo_sql",
        "external": {
          "object": "demo_products",
          "write_mode": "upsert",
          "key_fields": [
            "sku"
          ]
        }
      }
    }
  ],
  "edges": [
    {
      "source": "src",
      "target": "cast",
      "source_port": "out",
      "target_port": "in"
    },
    {
      "source": "cast",
      "target": "sql",
      "source_port": "out",
      "target_port": "in"
    }
  ]
}

Күтілетін нәтиже

skunameprice
T01Tea premium12.5
C01Coffee20
J01Juice8

T01 жаңарады, J01 қосылады, C01 қалады. Оқу кестесінде sku кілті бірегей болуы керек.

Іске қосу және тексеру

  1. demo_products оқу кестесін дайындап, алғашқы 2 жолын тексеріңіз.
  2. Баған түрлерін тексеріңіз: sku/name — мәтін, price — сан; cast блогы CSV мәтінін санға айналдырады.
  3. Алдын ала тексеріп, содан кейін орындаңыз; кестені оқып, көрсетілген 3 жолды салыстырыңыз.
  4. Сол іске қосуды қайталаңыз: sku бойынша upsert қайталанымсыз сол өнімдерді жаңартуы керек.

Жиі қателер

  • upsert орнына insert T01 жаңартпайды және бірегей кілт талабын бұзуы мүмкін.
  • Жазудан бұрын кіріс файлдағы бос немесе қайталанатын sku мәндерін түзетіңіз.
  • Схемасы мен жазу құқықтарын тексермей оқу кестесін өндірістік кестемен алмастырмаңыз.