Skip to content

Instantly share code, notes, and snippets.

@syordanov94
syordanov94 / .go
Created November 1, 2023 15:23
GoRedis init
import (
"context"
"time"
goRedis "github.com/redis/go-redis/v9"
)
type RedisRepository struct {
client goRedis.Client
}
@syordanov94
syordanov94 / .go
Created April 2, 2023 22:10
goRedisInterfaceImplementation
func (repo *RedisRepository) Get(key string) (string, error) {
val, err := redigo.String(repo.conn.Do("GET", key))
if err != nil {
return "", err
}
return val, nil
}
func (repo *RedisRepository) Set(key, value string) error {
_, err := repo.conn.Do("SET", key, value)
@syordanov94
syordanov94 / .go
Created April 2, 2023 22:04
redigo_init
type RedisRepository struct {
conn redigo.Conn
}
func NewRedisRepository(address, password string) RedisRepository {
connection, err := redigo.Dial("tcp", address, redigo.DialPassword(password))
if err != nil {
panic(err)
}
return RedisRepository{
@syordanov94
syordanov94 / .go
Created April 2, 2023 21:52
InterfaceDependency
var _ redis.RedisRepository = (*RedisRepository)(nil)
@syordanov94
syordanov94 / .go
Created April 2, 2023 21:51
goRedisInterfaceImplementation
func (repo *RedisRepository) Get(key string) (string, error) {
ctx := context.Background()
val, err := repo.client.Get(ctx, key).Result()
if err != nil {
return "", err
}
return val, nil
}
func (repo *RedisRepository) Set(key, value string) error {
@syordanov94
syordanov94 / .go
Last active April 2, 2023 22:11
GoRedisInit
type RedisRepository struct {
client goRedis.Client
}
func NewRedisRepository(address, password string) RedisRepository {
return RedisRepository{
client: *goRedis.NewClient(&goRedis.Options{
Addr: address,
Password: password,
}),
@syordanov94
syordanov94 / .go
Created April 2, 2023 11:24
Redis_interface
type RedisRepository interface {
Get(key string) (string, error)
Set(key, value string) error
}
@syordanov94
syordanov94 / .py
Created February 3, 2023 11:46
st_to_pg
def fromStorage_toPostgres(table, main_query, additional_query, file, columns, pg_connection, **args):
import urllib.request
import psycopg2
# connect to the PostgreSQL database
conn_info = BaseHook.get_connection(pg_connection)
conn = psycopg2.connect(host=conn_info.host,
database=conn_info.schema,
user=conn_info.login,
password=conn_info.password)
@syordanov94
syordanov94 / .py
Created February 3, 2023 11:39
merge_gr_files
task_merge_gs_files = PythonOperator(
task_id='merge_gs_file_task',
trigger_rule=TriggerRule.ALL_SUCCESS,
python_callable=compose_file,
op_args=[ "INSERT FIRST FUNCTION ARG", "INSERT FIRST FUNCTION ARG", ],
provide_context=True,
dag=dag)
@syordanov94
syordanov94 / .py
Created February 3, 2023 11:37
bq_to_gs_sharded
task_export_bq_data_to_storage = BigQueryToCloudStorageOperator(
dag=dag,
task_id='export_bq_data_to_storage_task',
trigger_rule=TriggerRule.ONE_SUCCESS,
source_project_dataset_table='INSERT BQ SOURCE TABLE HERE',
destination_cloud_storage_uris=['gs://' + bucket_name + '/' + file_name + '-*'],
export_format='CSV',
field_delimiter=csv_delimiter,
print_header=True)