Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(Elasticsearch Node): Add bulk operations for Elasticsearch #9940

Merged
merged 2 commits into from
Aug 7, 2024

Conversation

pemontto
Copy link
Contributor

@pemontto pemontto commented Jul 4, 2024

Summary

Add support for Elasticsearch bulk operations to:

  • Create (actually upsert)
  • Update
  • Delete

It defaults to 50 items per batch, but should be easy enough to make configurable. Depending on data size it could be reasonable to do batches of 100, 200, 500.

On 247 items the node time went from over a minute (75s) to 2s.

Old

image

With _bulk

image

Errors

It should handle item indices and error correctly
image

Review / Merge checklist

  • PR title and summary are descriptive. (conventions)
  • Docs updated or follow-up ticket created.
  • Tests included.
  • PR Labeled with release/backport (if the PR is an urgent fix that needs to be backported)

@pemontto
Copy link
Contributor Author

pemontto commented Jul 4, 2024

Stretch goals:

  1. Make the bulk loading DRY
  2. Make the batch size configurable

@n8n-assistant n8n-assistant bot added community Authored by a community member node/improvement New feature or request in linear Issue or PR has been created in Linear for internal review labels Jul 4, 2024
@pemontto pemontto force-pushed the elasticsearch-bulk branch 2 times, most recently from b0593e2 to 179d9f3 Compare July 4, 2024 16:36
Copy link
Member

@Joffcom Joffcom left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great, Thanks.

@Joffcom Joffcom merged commit bf8f848 into n8n-io:master Aug 7, 2024
9 checks passed
@github-actions github-actions bot mentioned this pull request Aug 7, 2024
@janober
Copy link
Member

janober commented Aug 7, 2024

Got released with n8n@1.54.0

MiloradFilipovic added a commit that referenced this pull request Aug 7, 2024
* master:
  refactor(core): Centralize scaling mode (no-changelog) (#9835)
  fix(editor): Remove body padding from storybook previews (no-changelog) (#10317)
  feat(MySQL Node): Return decimal types as numbers (#10313)
  🚀 Release 1.54.0 (#10315)
  feat(Elasticsearch Node): Add bulk operations for Elasticsearch (#9940)
  feat(Stripe Trigger Node): Add Stripe webhook descriptions based on the workflow ID and name (#9956)
  feat(MongoDB Node): Add projection to query options on Find (#9972)
  fix(Invoice Ninja Node): Fix payment types (#10196)
  feat(HTTP Request Tool Node): Use DynamicStructuredTool with models supporting it (no-changelog) (#10246)
  feat: Return scopes on executions (no-changelog) (#10310)
  feat(Webflow Node): Update to use the v2 API (#9996)
  feat(Lemlist Trigger Node): Update Trigger events (#10311)
  feat(Calendly Trigger Node): Update event names (no-changelog) (#10129)
  refactor(core): Reorganize webhook related components under src/webhooks (no-changelog) (#10296)
  docs: Fix links to license files in readme (no-changelog) (#10257)
  fix(editor): Update design system Avatar component to show initials also when only firstName or lastName is given (#10308)
  fix(editor): Update tags filter/editor to not show non existing tag as a selectable option (#10297)
  fix(editor): Update project tabs test (no-changelog) (#10300)
  fix(core): VM2 sandbox should not throw on `new Promise` (#10298)

# Conflicts:
#	packages/design-system/src/components/N8nAvatar/Avatar.vue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
community Authored by a community member in linear Issue or PR has been created in Linear for internal review node/improvement New feature or request Released
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants