2023-09-27 18:53:05 +00:00
|
|
|
import logging
|
|
|
|
import pytest
|
|
|
|
from helpers.cluster import ClickHouseCluster
|
|
|
|
|
|
|
|
|
|
|
|
cluster = ClickHouseCluster(__file__)
|
|
|
|
node = cluster.add_instance(
|
|
|
|
"node",
|
|
|
|
main_configs=[
|
|
|
|
"configs/config.d/minio.xml",
|
|
|
|
],
|
|
|
|
user_configs=[
|
|
|
|
"configs/users.d/users.xml",
|
|
|
|
],
|
|
|
|
with_minio=True,
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture(scope="module")
|
|
|
|
def started_cluster():
|
|
|
|
try:
|
|
|
|
logging.info("Starting cluster...")
|
|
|
|
cluster.start()
|
|
|
|
logging.info("Cluster started")
|
|
|
|
|
|
|
|
yield cluster
|
|
|
|
finally:
|
|
|
|
logging.info("Stopping cluster")
|
|
|
|
cluster.shutdown()
|
|
|
|
logging.info("Cluster stopped")
|
|
|
|
|
|
|
|
|
|
|
|
def test_s3_table_functions(started_cluster):
|
|
|
|
"""
|
|
|
|
Simple test to check s3 table function functionalities
|
|
|
|
"""
|
|
|
|
node.query(
|
|
|
|
"""
|
|
|
|
INSERT INTO FUNCTION s3
|
|
|
|
(
|
|
|
|
'minio://data/test_file.tsv.gz', 'minio', 'minio123'
|
|
|
|
)
|
|
|
|
SELECT * FROM numbers(1000000);
|
|
|
|
"""
|
|
|
|
)
|
|
|
|
|
|
|
|
assert (
|
|
|
|
node.query(
|
2023-09-27 20:27:48 +00:00
|
|
|
"""
|
2023-09-27 18:53:05 +00:00
|
|
|
SELECT count(*) FROM s3
|
|
|
|
(
|
|
|
|
'minio://data/test_file.tsv.gz', 'minio', 'minio123'
|
|
|
|
);
|
|
|
|
"""
|
|
|
|
)
|
|
|
|
== "1000000\n"
|
|
|
|
)
|
2023-11-28 17:33:46 +00:00
|
|
|
|
2023-11-28 18:13:37 +00:00
|
|
|
|
2023-11-28 17:33:46 +00:00
|
|
|
def test_s3_table_functions_line_as_string(started_cluster):
|
|
|
|
node.query(
|
|
|
|
"""
|
|
|
|
INSERT INTO FUNCTION s3
|
|
|
|
(
|
|
|
|
'minio://data/test_file_line_as_string.tsv.gz', 'minio', 'minio123'
|
|
|
|
)
|
|
|
|
SELECT * FROM numbers(1000000);
|
|
|
|
"""
|
|
|
|
)
|
|
|
|
|
|
|
|
assert (
|
|
|
|
node.query(
|
|
|
|
"""
|
|
|
|
SELECT _file FROM s3
|
|
|
|
(
|
|
|
|
'minio://data/*as_string.tsv.gz', 'minio', 'minio123', 'LineAsString'
|
|
|
|
) LIMIT 1;
|
|
|
|
"""
|
|
|
|
)
|
|
|
|
== node.query(
|
|
|
|
"""
|
|
|
|
SELECT _file FROM s3
|
|
|
|
(
|
|
|
|
'http://minio1:9001/root/data/*as_string.tsv.gz', 'minio', 'minio123', 'LineAsString'
|
|
|
|
) LIMIT 1;
|
|
|
|
"""
|
|
|
|
)
|
|
|
|
)
|