Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit d87283f

Browse filesBrowse files
abhijeet-dhumalntkathole
authored andcommitted
perf: Remove redundant entity key serialization in online_read
Signed-off-by: abhijeet-dhumal <abhijeetdhumal652@gmail.com>
1 parent 59dfdb8 commit d87283f
Copy full SHA for d87283f

2 files changed

+14-17Lines changed: 14 additions & 17 deletions

File tree

Expand file treeCollapse file tree
Open diff view settings
Filter options
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎sdk/python/feast/infra/online_stores/snowflake.py‎

Copy file name to clipboardExpand all lines: sdk/python/feast/infra/online_stores/snowflake.py
+13-12Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import itertools
21
import os
32
from binascii import hexlify
43
from datetime import datetime
@@ -168,20 +167,26 @@ def online_read(
168167

169168
requested_features = requested_features if requested_features else []
170169

170+
# Pre-compute serialized entity keys to avoid redundant serialization
171+
serialized_entity_keys = [
172+
serialize_entity_key(
173+
entity_key,
174+
entity_key_serialization_version=config.entity_key_serialization_version,
175+
)
176+
for entity_key in entity_keys
177+
]
178+
171179
entity_fetch_str = ",".join(
172180
[
173181
(
174182
"TO_BINARY("
175183
+ hexlify(
176-
serialize_entity_key(
177-
combo[0],
178-
entity_key_serialization_version=config.entity_key_serialization_version,
179-
)
180-
+ bytes(combo[1], encoding="utf-8")
184+
serialized_entity_key + bytes(feature, encoding="utf-8")
181185
).__str__()[1:]
182186
+ ")"
183187
)
184-
for combo in itertools.product(entity_keys, requested_features)
188+
for serialized_entity_key in serialized_entity_keys
189+
for feature in requested_features
185190
]
186191
)
187192

@@ -197,11 +202,7 @@ def online_read(
197202
"""
198203
df = execute_snowflake_statement(conn, query).fetch_pandas_all()
199204

200-
for entity_key in entity_keys:
201-
entity_key_bin = serialize_entity_key(
202-
entity_key,
203-
entity_key_serialization_version=config.entity_key_serialization_version,
204-
)
205+
for entity_key_bin in serialized_entity_keys:
205206
res = {}
206207
res_ts = None
207208
for index, row in df[df["entity_key"] == entity_key_bin].iterrows():
Collapse file

‎sdk/python/feast/infra/online_stores/sqlite.py‎

Copy file name to clipboardExpand all lines: sdk/python/feast/infra/online_stores/sqlite.py
+1-5Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -263,11 +263,7 @@ def online_read(
263263
rows = {
264264
k: list(group) for k, group in itertools.groupby(rows, key=lambda r: r[0])
265265
}
266-
for entity_key in entity_keys:
267-
entity_key_bin = serialize_entity_key(
268-
entity_key,
269-
entity_key_serialization_version=config.entity_key_serialization_version,
270-
)
266+
for entity_key_bin in serialized_entity_keys:
271267
res = {}
272268
res_ts = None
273269
for _, feature_name, val_bin, ts in rows.get(entity_key_bin, []):

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.