tinybird 4.6.11__tar.gz → 4.6.11.dev0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/PKG-INFO +1 -6
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/__cli__.py +2 -2
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/client.py +4 -20
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/common.py +6 -13
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/connection_dynamodb.py +0 -1
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/connection_s3.py +0 -1
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/datasource.py +8 -60
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird.egg-info/PKG-INFO +1 -6
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/setup.cfg +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/__cli__.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/ch_utils/constants.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/ch_utils/engine.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/check_pypi.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/client.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/config.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/context.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/datafile/common.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/datafile/exceptions.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/datafile/parse_connection.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/datafile/parse_datasource.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/datafile/parse_pipe.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/datatypes.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/feedback_manager.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/git_settings.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/iterating/__init__.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/iterating/data_branch_modes.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/prompts.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/service_datasources.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/sql.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/sql_template.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/sql_template_fmt.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/sql_toolset.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/syncasync.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/check_pypi.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/cli.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/config.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/branch.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/build.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/build_common.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/cicd.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/cli.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/config.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/connection.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/connection_kafka.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/copy.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/create.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/datafile/build.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/datafile/build_common.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/datafile/build_datasource.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/datafile/build_pipe.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/datafile/diff.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/datafile/fixture.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/datafile/format_common.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/datafile/format_connection.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/datafile/format_datasource.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/datafile/format_pipe.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/datafile/pipe_checker.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/datafile/playground.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/datafile/pull.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/deployment.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/deployment_common.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/deprecations.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/endpoint.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/exceptions.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/feedback_manager.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/fmt.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/info.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/infra.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/job.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/job_common.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/llm.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/llm_utils.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/local.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/local_common.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/local_logs.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/login.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/login_common.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/logout.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/logs.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/materialization.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/open.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/pipe.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/preview.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/project.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/project_commands.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/py_project.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/query_output.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/regions.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/secret.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/secret_common.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/sink.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/table.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/telemetry.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/test.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/test_common.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/tinyunit/tinyunit.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/token.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/ts_project.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/watch.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/workspace.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb/modules/workspace_members.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb_cli.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb_cli_modules/auth.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb_cli_modules/branch.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb_cli_modules/cicd.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb_cli_modules/cli.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb_cli_modules/common.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb_cli_modules/config.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb_cli_modules/connection.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb_cli_modules/datasource.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb_cli_modules/exceptions.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb_cli_modules/fmt.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb_cli_modules/job.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb_cli_modules/pipe.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb_cli_modules/regions.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb_cli_modules/tag.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb_cli_modules/telemetry.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb_cli_modules/test.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb_cli_modules/tinyunit/tinyunit.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb_cli_modules/workspace.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tb_cli_modules/workspace_members.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird/tornado_template.py +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird.egg-info/SOURCES.txt +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird.egg-info/dependency_links.txt +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird.egg-info/entry_points.txt +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird.egg-info/requires.txt +0 -0
- {tinybird-4.6.11 → tinybird-4.6.11.dev0}/tinybird.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: tinybird
|
|
3
|
-
Version: 4.6.11
|
|
3
|
+
Version: 4.6.11.dev0
|
|
4
4
|
Summary: Tinybird Command Line Tool
|
|
5
5
|
Home-page: https://www.tinybird.co/docs/forward/commands
|
|
6
6
|
Author: Tinybird
|
|
@@ -52,11 +52,6 @@ The Tinybird command-line tool allows you to use all the Tinybird functionality
|
|
|
52
52
|
Changelog
|
|
53
53
|
----------
|
|
54
54
|
|
|
55
|
-
4.6.11
|
|
56
|
-
********
|
|
57
|
-
|
|
58
|
-
- `Added` `tb datasource sample` support for DynamoDB connectors.
|
|
59
|
-
|
|
60
55
|
4.6.10
|
|
61
56
|
********
|
|
62
57
|
|
|
@@ -4,5 +4,5 @@ __description__ = 'Tinybird Command Line Tool'
|
|
|
4
4
|
__url__ = 'https://www.tinybird.co/docs/forward/commands'
|
|
5
5
|
__author__ = 'Tinybird'
|
|
6
6
|
__author_email__ = 'support@tinybird.co'
|
|
7
|
-
__version__ = '4.6.11'
|
|
8
|
-
__revision__ = '
|
|
7
|
+
__version__ = '4.6.11.dev0'
|
|
8
|
+
__revision__ = 'd98671a'
|
|
@@ -546,36 +546,20 @@ class TinyB:
|
|
|
546
546
|
def datasource_sync(self, datasource_id: str):
|
|
547
547
|
return self._req(f"/v0/datasources/{datasource_id}/scheduling/runs", method="POST", data="")
|
|
548
548
|
|
|
549
|
-
def datasource_sample(
|
|
550
|
-
|
|
551
|
-
datasource_name: str,
|
|
552
|
-
max_files: int = 1,
|
|
553
|
-
rows: Optional[int] = None,
|
|
554
|
-
max_bytes: Optional[str] = None,
|
|
555
|
-
full_export: bool = False,
|
|
556
|
-
) -> Dict[str, Any]:
|
|
557
|
-
"""Start a sample import job for an S3/GCS/DynamoDB connected datasource.
|
|
549
|
+
def datasource_sample(self, datasource_name: str, max_files: int = 1) -> Dict[str, Any]:
|
|
550
|
+
"""Start a sample import job for an S3/GCS connected datasource.
|
|
558
551
|
|
|
559
552
|
Args:
|
|
560
553
|
datasource_name: Name of the datasource to import sample data into
|
|
561
|
-
max_files: Maximum number of files to import
|
|
562
|
-
rows: For DynamoDB, the maximum number of rows to scan and import (mutually exclusive with max_bytes)
|
|
563
|
-
max_bytes: For DynamoDB, the maximum approximate JSONEachRow bytes to import, capped by the server's
|
|
564
|
-
workspace limit (mutually exclusive with rows)
|
|
565
|
-
full_export: For DynamoDB, trigger a full PITR export instead of a bounded scan
|
|
554
|
+
max_files: Maximum number of files to import (default 1, max 10)
|
|
566
555
|
|
|
567
556
|
Returns:
|
|
568
557
|
dict with job info including id, job_id, job_url, job, status
|
|
569
558
|
"""
|
|
570
|
-
payload: Dict[str, Any] = {"max_files": max_files, "full_export": full_export}
|
|
571
|
-
if rows is not None:
|
|
572
|
-
payload["rows"] = rows
|
|
573
|
-
if max_bytes is not None:
|
|
574
|
-
payload["max_bytes"] = max_bytes
|
|
575
559
|
return self._req(
|
|
576
560
|
f"/v0/datasources/{datasource_name}/sample",
|
|
577
561
|
method="POST",
|
|
578
|
-
data=json.dumps(
|
|
562
|
+
data=json.dumps({"max_files": max_files}),
|
|
579
563
|
)
|
|
580
564
|
|
|
581
565
|
def datasource_scheduling_state(self, datasource_id: str):
|
|
@@ -1614,7 +1614,6 @@ def run_aws_iamrole_connection_flow(
|
|
|
1614
1614
|
connection_name: str,
|
|
1615
1615
|
policy: str,
|
|
1616
1616
|
local_unavailable: bool = False,
|
|
1617
|
-
env: str = "local",
|
|
1618
1617
|
) -> Tuple[str, str, Optional[TinyB], Optional[TinyB]]:
|
|
1619
1618
|
"""
|
|
1620
1619
|
Run the interactive AWS IAM Role connection flow for S3 or DynamoDB.
|
|
@@ -1629,9 +1628,6 @@ def run_aws_iamrole_connection_flow(
|
|
|
1629
1628
|
connection_name: The name for the connection being created.
|
|
1630
1629
|
policy: The access policy type ('read' or 'write').
|
|
1631
1630
|
local_unavailable: If True, local environment is unavailable (e.g., missing AWS credentials).
|
|
1632
|
-
env: The active target environment ('local' or 'cloud'). When not local, the
|
|
1633
|
-
passed-in `client` is reused as the cloud client so secrets land in the
|
|
1634
|
-
workspace the command targets (including branches).
|
|
1635
1631
|
|
|
1636
1632
|
Returns:
|
|
1637
1633
|
A tuple containing:
|
|
@@ -1740,15 +1736,12 @@ def run_aws_iamrole_connection_flow(
|
|
|
1740
1736
|
|
|
1741
1737
|
if use_cloud:
|
|
1742
1738
|
try:
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
staging=False,
|
|
1750
|
-
request_from=getattr(client, "request_from", None),
|
|
1751
|
-
)
|
|
1739
|
+
cloud_client = TinyB(
|
|
1740
|
+
token=config.get("token", ""),
|
|
1741
|
+
host=config.get("host", ""),
|
|
1742
|
+
staging=False,
|
|
1743
|
+
request_from=getattr(client, "request_from", None),
|
|
1744
|
+
)
|
|
1752
1745
|
except Exception as e:
|
|
1753
1746
|
click.echo(FeedbackManager.warning(message=f"Failed to initialize cloud client: {e}"))
|
|
1754
1747
|
click.echo(FeedbackManager.warning(message="Continuing without cloud environment."))
|
|
@@ -363,7 +363,6 @@ def connection_create_s3(
|
|
|
363
363
|
connection_name=connection_name,
|
|
364
364
|
policy=access_type.lower(),
|
|
365
365
|
local_unavailable=local_aws_unavailable,
|
|
366
|
-
env=env,
|
|
367
366
|
)
|
|
368
367
|
unique_suffix = uuid.uuid4().hex[:8] # Use first 8 chars of a UUID for brevity
|
|
369
368
|
secret_name = f"s3_role_arn_{connection_name}_{unique_suffix}"
|
|
@@ -862,50 +862,20 @@ def datasource_sync(ctx: Context, datasource_name: str, yes: bool):
|
|
|
862
862
|
default=False,
|
|
863
863
|
help="Wait for the import job to finish",
|
|
864
864
|
)
|
|
865
|
-
@click.option(
|
|
866
|
-
"--rows",
|
|
867
|
-
default=None,
|
|
868
|
-
type=int,
|
|
869
|
-
help="For DynamoDB, the maximum number of rows to scan and import (default 1500; mutually exclusive with --max-bytes)",
|
|
870
|
-
)
|
|
871
|
-
@click.option(
|
|
872
|
-
"--max-bytes",
|
|
873
|
-
default=None,
|
|
874
|
-
type=str,
|
|
875
|
-
help="For DynamoDB, the maximum approximate JSONEachRow bytes to import, e.g. 500MB (capped at 10GB by default; mutually exclusive with --rows)",
|
|
876
|
-
)
|
|
877
|
-
@click.option(
|
|
878
|
-
"--full-export",
|
|
879
|
-
is_flag=True,
|
|
880
|
-
default=False,
|
|
881
|
-
help="For DynamoDB, trigger a full PITR export instead of a bounded sample (mutually exclusive with --rows and --max-bytes)",
|
|
882
|
-
)
|
|
883
865
|
@click.pass_context
|
|
884
|
-
def datasource_sample(
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
full_export: bool,
|
|
892
|
-
) -> None:
|
|
893
|
-
"""Import sample data from a datasource connected to S3, GCS, or DynamoDB.
|
|
894
|
-
|
|
895
|
-
For S3 and GCS, this imports a limited number of files from the bucket URI
|
|
896
|
-
pattern. For DynamoDB, this scans and imports a bounded sample limited by
|
|
897
|
-
either --rows or --max-bytes (defaulting to 1500 rows), or --full-export to
|
|
898
|
-
trigger a PITR export of the whole table.
|
|
866
|
+
def datasource_sample(ctx: Context, datasource_name: str, max_files: int, wait: bool) -> None:
|
|
867
|
+
"""Import sample data from a datasource connected to an S3 or GCS bucket.
|
|
868
|
+
|
|
869
|
+
This command only works with datasources that have IMPORT_CONNECTION_NAME and
|
|
870
|
+
IMPORT_BUCKET_URI configured (i.e., datasources ingesting from S3 or GCS).
|
|
871
|
+
It imports a limited number of files from the bucket URI pattern, useful for
|
|
872
|
+
testing data pipelines in branches without importing the entire dataset.
|
|
899
873
|
|
|
900
874
|
By default, returns immediately with job info. Use --wait to block until complete.
|
|
901
875
|
|
|
902
876
|
Examples:
|
|
903
877
|
tb --branch=my_branch datasource sample my_s3_ds
|
|
904
878
|
tb --branch=my_branch datasource sample my_s3_ds --max-files 3 --wait
|
|
905
|
-
tb --branch=my_branch datasource sample my_dynamodb_ds --wait
|
|
906
|
-
tb --branch=my_branch datasource sample my_dynamodb_ds --rows 100000 --wait
|
|
907
|
-
tb --branch=my_branch datasource sample my_dynamodb_ds --max-bytes 1GB --wait
|
|
908
|
-
tb --branch=my_branch datasource sample my_dynamodb_ds --full-export --wait
|
|
909
879
|
"""
|
|
910
880
|
from tinybird.tb.modules.common import wait_job
|
|
911
881
|
from tinybird.tb.modules.job_common import echo_job_url
|
|
@@ -914,32 +884,10 @@ def datasource_sample(
|
|
|
914
884
|
client: TinyB = ctx.obj["client"]
|
|
915
885
|
config = ctx.obj.get("config", {})
|
|
916
886
|
|
|
917
|
-
if rows is not None and max_bytes is not None:
|
|
918
|
-
raise CLIDatasourceException(
|
|
919
|
-
FeedbackManager.error(message="--rows and --max-bytes are mutually exclusive; pass only one.")
|
|
920
|
-
)
|
|
921
|
-
|
|
922
|
-
if full_export and (rows is not None or max_bytes is not None):
|
|
923
|
-
raise CLIDatasourceException(
|
|
924
|
-
FeedbackManager.error(message="--full-export cannot be combined with --rows or --max-bytes.")
|
|
925
|
-
)
|
|
926
|
-
|
|
927
|
-
if full_export:
|
|
928
|
-
click.echo(
|
|
929
|
-
FeedbackManager.warning(
|
|
930
|
-
message=(
|
|
931
|
-
"DynamoDB full export samples will import the whole table. "
|
|
932
|
-
"Use --rows or --max-bytes without --full-export for a bounded sample."
|
|
933
|
-
)
|
|
934
|
-
)
|
|
935
|
-
)
|
|
936
|
-
|
|
937
887
|
click.echo(FeedbackManager.info(message=f"Starting sample import for {datasource_name}..."))
|
|
938
888
|
|
|
939
889
|
# Start the job
|
|
940
|
-
result = client.datasource_sample(
|
|
941
|
-
datasource_name, max_files=max_files, rows=rows, max_bytes=max_bytes, full_export=full_export
|
|
942
|
-
)
|
|
890
|
+
result = client.datasource_sample(datasource_name, max_files=max_files)
|
|
943
891
|
|
|
944
892
|
job_id = result.get("job_id") or result.get("id")
|
|
945
893
|
if not job_id:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: tinybird
|
|
3
|
-
Version: 4.6.11
|
|
3
|
+
Version: 4.6.11.dev0
|
|
4
4
|
Summary: Tinybird Command Line Tool
|
|
5
5
|
Home-page: https://www.tinybird.co/docs/forward/commands
|
|
6
6
|
Author: Tinybird
|
|
@@ -52,11 +52,6 @@ The Tinybird command-line tool allows you to use all the Tinybird functionality
|
|
|
52
52
|
Changelog
|
|
53
53
|
----------
|
|
54
54
|
|
|
55
|
-
4.6.11
|
|
56
|
-
********
|
|
57
|
-
|
|
58
|
-
- `Added` `tb datasource sample` support for DynamoDB connectors.
|
|
59
|
-
|
|
60
55
|
4.6.10
|
|
61
56
|
********
|
|
62
57
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|