-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add developer guide for loading data #74
Changes from 3 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
# JupyterLab Developer Guide | ||
|
||
## Accessing JupyterLab Development Environment | ||
|
||
### 1. Create SSH Tunnel: | ||
|
||
Execute the following command to create an SSH tunnel to the remote server (`login1.berkeley.kbase.us`): | ||
|
||
```bash | ||
ssh -f -N -L localhost:44041:10.58.2.201:4041 <ac.anl_username>@login1.berkeley.kbase.us | ||
``` | ||
|
||
### 2. Access JupyterLab Notebooks: | ||
|
||
Open a web browser and navigate to the following URL: | ||
|
||
``` | ||
http://localhost:44041 | ||
``` | ||
This will open the JupyterLab Notebook interface running on the remote server. | ||
|
||
|
||
## Accessing MinIO | ||
Please refer to the [MinIO Guide](minio_guide.md) for instructions on accessing MinIO. | ||
|
||
### Read/Write MinIO username and password | ||
Get the MinIO username and password with read/write permission from the above development JupiterLab environment. | ||
```python | ||
import os | ||
minio_username, minio_password = os.environ['MINIO_ACCESS_KEY'], os.environ['MINIO_SECRET_KEY'] | ||
print(f"MinIO username: {minio_username},\nMinIO password: {minio_password}") | ||
``` | ||
MrCreosote marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
### Naming conventions | ||
Please adhere to the following naming conventions for MinIO buckets and objects: | ||
|
||
#### Source Files: | ||
Source files are the raw data files that are uploaded to MinIO. | ||
* Bucket name: `namespace_name`-source | ||
* File name: The file name should either clearly represent the table name or be formatted in a way that allows a | ||
program to easily extract the table name from it. | ||
|
||
#### Delta Table Files: | ||
Delta table files are Parquet files generated by Spark during the creation of a table. | ||
* Bucket name: `namespace_name`-delta | ||
|
||
## Loading Notebooks | ||
Please create a corresponding loading notebook for each namespace in the `data-loading-notebooks` directory. | ||
|
||
Please use the existing loading notebooks as examples. | ||
|
||
🚨 **Please DO NOT rerun the loading notebooks in the development environment. Instead, create a new notebook for each | ||
new namespace and manually verify the data loading process.** | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm not totally sure what this means. If you need to reload the data shouldn't you reuse the notebook? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Updated the note to make it more clear. I was trying to prevent people running existing loading notebook and accidentally update existing tables. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is there anything that should be added about ensuring the notebook works when overwriting as opposed to loading clean? I'm not sure there's a guarantee that a notebook can be run without dropping the tables first There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think that's fine for now. I haven't thoroughly tested the process of reloading or altering tables yet. For now, I just want to ensure people only load/update their own tables and avoid modifying others' tables. I've observed that people often rerun notebooks to check the output for convenience. |
||
|
||
|
||
|
||
|
||
|
||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I thought we already had docs like this somewhere?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yea. Similar instructions in the user's guide. https://github.com/kbase/cdm-jupyterhub/blob/main/docs/user_guide.md
But dev has different port number. That's also the reason I didn't make it as detailed as the user's guide.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe link to the user guide for more info?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍