Query Services¶
The most of the time you will never initiate these services directly, you will use Container to register or get the instances of these services instead:
amsdal_glue.services.DefaultSchemaQueryService ¶
Bases: SchemaQueryService
DefaultSchemaQueryService is responsible for executing schema query operations.
Example
Here is an example to run a schema query operation:
from amsdal_glue import init_default_containers
from amsdal_glue import Container
from amsdal_glue import Conditions, Condition, FieldReference, FieldLookup, Value, Field
from amsdal_glue import SchemaQueryOperation
from amsdal_glue.services import SchemaQueryService
# Register default containers
init_default_containers()
# Get the registered DefaultSchemaQueryService
service = Container.services.get(SchemaQueryService)
# Query `users` schema
service.execute(
SchemaQueryOperation(
filters=Conditions(
Condition(
field=FieldReference(field=Field(name='name'), table_name='amsdal_schema_registry'),
lookup=FieldLookup.EQ,
value=Value('users'),
)
),
),
)
Note, the amsdal_schema_registry
is reserved AMSDAL Glue name of the schema registry table.
Use it to filter the schemas by name.
execute ¶
execute(query_op)
Executes the given schema query operation.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
query_op
|
SchemaQueryOperation
|
The schema query operation to be executed. |
required |
Returns:
Name | Type | Description |
---|---|---|
SchemaResult |
SchemaResult
|
The result of the schema query operation execution. |
amsdal_glue.services.DefaultDataQueryService ¶
Bases: DataQueryService
DefaultDataQueryService is responsible for executing data query operations.
Example
Here is an example to run a data query operation:
from amsdal_glue import init_default_containers
from amsdal_glue import Container
from amsdal_glue import FieldReference, FieldLookup, Value, Field
from amsdal_glue import DataQueryOperation
from amsdal_glue.services import DataQueryService
# Register default containers
init_default_containers()
# Get the registered DefaultDataQueryService
service = Container.services.get(DataQueryService)
# Query `users` schema and get only `first_name` and `last_name` fields
service.execute(
DataQueryOperation(
query=QueryStatement(
table=SchemaReference(name='users', version=Version.LATEST),
only=[
FieldReference(field=Field(name='first_name'), table_name='users'),
FieldReference(field=Field(name='last_name'), table_name='users'),
],
),
),
)
execute ¶
execute(query_op)
Executes the given data query operation.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
query_op
|
DataQueryOperation
|
The data query operation to be executed. |
required |
Returns:
Name | Type | Description |
---|---|---|
DataResult |
DataResult
|
The result of the data query operation execution. |