Skip to content

PPL: GeoIP function#347

Closed
andy-k-improving wants to merge 7 commits intoft-ak-geo-spatial-integrationfrom
ft-ak-geoip-function
Closed

PPL: GeoIP function#347
andy-k-improving wants to merge 7 commits intoft-ak-geo-spatial-integrationfrom
ft-ak-geoip-function

Conversation

@andy-k-improving
Copy link
Copy Markdown

Description

Introduce a new PPL command expression geoip, to perform geo-spatial information lookup with the provided IPv4 || IPv6 addresses, result of the lookup is formatted into a tuple with attribute as key and location detail as value.

In this particular setting, SQL plugin will act as a thin client, by relaying the IPEnrichment request to OpenSearch Geo-Spatial plugin, WITHIN the same cluster.
Detail implementation and interface that exposed on Geo-Spatial side can be found:
opensearch-project/geospatial#700

Internally this functionality is achieved by:

  • Adding an no-op OpenSearchFunctionExpression marker to identify this is an expression has no default implement on other runtime (Ex: Prometheus)
  • Update OpenSearchIndex in order to provide an OpenSearch specific handler for eval operator and its expressions, when OS being used as the storage engine.

During runtime, all eval expressions, will being passed to OpenSearchIndex.visitEval( ), then OpenSearchEvalOperator class will pick up the call, by evaluating all eval expression as it is, and then handle all occasion of OpenSearchFunctionExpression separately, by reading the function name and argument, and execute the appropriate business logic.

Marker class OpenSearchFunctionExpression is being used in this case because the actual implementation require runtime OpenSearch client connectivity, however core module is mean to be generic, hence this workaround is being deployed, by tagging it as OpenSearchFunctionExpression on core and only handle it on the opensearch Cradle module .

Related Issues

Resolves: opensearch-project#3037

Check List

  • New functionality includes testing.
  • New functionality has been documented.
  • New functionality has javadoc added.
  • New functionality has a user manual doc added.
  • API changes companion pull request created.
  • Commits are signed per the DCO using --signoff.
  • Public documentation issue/PR created.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Signed-off-by: Andy Kwok <andy.kwok@improving.com>
Signed-off-by: Andy Kwok <andy.kwok@improving.com>
Signed-off-by: Andy Kwok <andy.kwok@improving.com>
Signed-off-by: Andy Kwok <andy.kwok@improving.com>
Signed-off-by: Andy Kwok <andy.kwok@improving.com>
Signed-off-by: Andy Kwok <andy.kwok@improving.com>
Signed-off-by: Andy Kwok <andy.kwok@improving.com>
@andy-k-improving andy-k-improving force-pushed the ft-ak-geo-spatial-integration branch 4 times, most recently from c54639c to e9a4273 Compare January 20, 2025 19:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant