- Зачем: - продемонстрировать возможность доступа нескольких движков к одной Iceberg-таблице через общий каталог. - Что: - создан notebooks/06_spark_and_trino_on_same_table.ipynb с примерами write (Spark) -> read (Trino). - в jupyter/Dockerfile добавлен клиент trino. - в START_HERE.md и docs/stack_reference.md добавлена инструкция по подключению DBeaver к Trino. - статус модуля 6 в планах обновлен до Ready for validation. - Проверка: - ручная проверка выполнения ячеек в ноутбуке (Python trino client). - проверка наличия всех инструкций в документации.
34 lines
1.0 KiB
Docker
Executable File
34 lines
1.0 KiB
Docker
Executable File
# Берем за основу контейнер, приготовленный для spark в spark/Dockerfile
|
|
FROM de-spark-iceberg:3.5.1
|
|
|
|
USER root
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
# Устанавливаем JupyterLab и пакеты для инспекции стенда (MinIO, PostgreSQL)
|
|
RUN pip3 install --no-cache-dir \
|
|
"jupyterlab==4.2.5" \
|
|
"boto3>=1.35,<2" \
|
|
"psycopg2-binary>=2.9,<3" \
|
|
"trino>=0.328"
|
|
|
|
# Создаём непривилегированного пользователя
|
|
ARG NB_USER=jovyan
|
|
ARG NB_UID=1000
|
|
ARG NB_GID=100
|
|
|
|
RUN if ! getent group ${NB_GID} >/dev/null; then groupadd --gid ${NB_GID} ${NB_USER}; fi \
|
|
&& useradd --uid ${NB_UID} --gid ${NB_GID} -m -s /bin/bash ${NB_USER} \
|
|
&& mkdir -p /opt/work \
|
|
&& chown -R ${NB_UID}:${NB_GID} /opt/work
|
|
|
|
USER ${NB_UID}:${NB_GID}
|
|
WORKDIR /opt/work
|
|
EXPOSE 8888
|
|
|
|
CMD ["jupyter", "lab", \
|
|
"--ip=0.0.0.0", \
|
|
"--port=8888", \
|
|
"--no-browser", \
|
|
"--NotebookApp.token=", \
|
|
"--NotebookApp.password="]
|