Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
b349ad6
Initial implementation of BigTable online store.
chhabrakadabra Aug 25, 2022
f9f45bb
Attempt to run bigtable integration tests.
chhabrakadabra Sep 5, 2022
2a1a863
Got the BigTable tests running in local containers
chhabrakadabra Sep 5, 2022
96814d6
Set serialization version when computing entity ID
chhabrakadabra Sep 6, 2022
6e6233f
Switch to the recommended layout in bigtable.
chhabrakadabra Sep 6, 2022
2a0d09a
Minor bugfixes.
chhabrakadabra Sep 10, 2022
98532a5
Move BigTable online store out of contrib
chhabrakadabra Sep 27, 2022
2a65fef
Attempt to run integration tests in CI.
chhabrakadabra Sep 28, 2022
de795f3
Delete tables for entity-less feature views.
chhabrakadabra Sep 28, 2022
bf798e8
Table names should be smaller than 50 characters
chhabrakadabra Sep 28, 2022
eb3ab91
Optimize bigtable reads.
chhabrakadabra Sep 28, 2022
1383b7e
dynamodb: switch to `mock_dynamodb`
chhabrakadabra Sep 28, 2022
6986fa9
minor: rename `BigTable` to `Bigtable`
chhabrakadabra Sep 29, 2022
3cd76a8
Wrote some Bigtable documentation.
chhabrakadabra Sep 29, 2022
c7449cc
Bugfix: Deal with missing row keys.
chhabrakadabra Sep 30, 2022
f356312
Fix linting issues.
chhabrakadabra Sep 30, 2022
ff62c6b
Generate requirements files.
chhabrakadabra Sep 30, 2022
cce3602
Don't bother materializing created timestamp.
chhabrakadabra Sep 30, 2022
943ee3f
Remove `tensorflow-metadata`.
chhabrakadabra Sep 30, 2022
ab80b42
Minor fix to Bigtable documentation.
chhabrakadabra Oct 5, 2022
4755745
update roadmap docs
adchia Oct 5, 2022
c0f2d8e
Fix roadmap doc
adchia Oct 5, 2022
2d6bdac
Change link to point to roadmap page
adchia Oct 5, 2022
992c318
change order in roadmap
adchia Oct 5, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Table names should be smaller than 50 characters
This is BigTable's table length limit and it's causing test failures.

Signed-off-by: Abhin Chhabra <abhin.chhabra@shopify.com>
  • Loading branch information
chhabrakadabra committed Sep 30, 2022
commit bf798e841b5d33a67b802cc1ba1565c12d8d4992
26 changes: 25 additions & 1 deletion sdk/python/feast/infra/online_stores/bigtable.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import hashlib
import logging
from concurrent import futures
from datetime import datetime
Expand Down Expand Up @@ -275,7 +276,30 @@ def _get_table_name(config: RepoConfig, feature_view: FeatureView) -> str:
if feature_view.entities
else DUMMY_ENTITY_NAME
)
return f"{config.project}.{entities_part}"
BIGTABLE_TABLE_MAX_LENGTH = 50
ENTITIES_PART_MAX_LENGTH = 25
# Bigtable limits table names to 50 characters. We'll limit the max size of of
# the `entities_part` and if that's not enough, we'll just hash the
# entities_part. The remaining length is dedicated to the project name. This
# allows multiple projects to coexist in the same bigtable instance. This also
# allows multiple integration test executions to run simultaneously without
# conflicts.
if len(entities_part) > ENTITIES_PART_MAX_LENGTH:
entities_part = hashlib.md5(entities_part.encode()).hexdigest()[
:ENTITIES_PART_MAX_LENGTH
]
remaining_length = BIGTABLE_TABLE_MAX_LENGTH - len(entities_part)
if len(config.project) > remaining_length:
HUMAN_READABLE_PART_LENGTH = 10
HASH_PART_LENGTH = remaining_length - HUMAN_READABLE_PART_LENGTH - 1
project_part = (
config.project[:HUMAN_READABLE_PART_LENGTH]
+ "_"
+ hashlib.md5(config.project.encode()).hexdigest()[:HASH_PART_LENGTH]
)
else:
project_part = config.project
return f"{project_part}.{entities_part}"

def teardown(
self,
Expand Down