コード例 #1
0
 def upload_avro_files(self, block_number, all_block_data):
     for key, value in all_block_data.items():
         c = write_to_avro(value, key)
         file_name = f"{key}/{block_number}.avro"
         upload_file_to_gcs(self.avro_bucket, file_name, c)
コード例 #2
0
 def save_avro_files_locally(self, file_name, all_block_data):
     for key, value in all_block_data.items():
         c = write_to_avro(value, key)
         final_file_name = f"{AVRO_LOCAL_STORAGE}/{key}/{file_name}.avro"
         bytesio_to_file(c, final_file_name)
     logger.info(f"Saved data for {file_name}")
コード例 #3
0
ファイル: batch.py プロジェクト: ankitchiplunkar/tezos-etl
table_names = {
    'Activation': 'activation',
    'BalanceUpdate': 'balance_update',
    'Ballot': 'ballot',
    'Block': 'block',
    'Delegation': 'delegation',
    'DoubleBakingEvidence': 'double_baking_evidence',
    'DoubleEndorsementEvidence': 'double_endorsement_evidence',
    'Endorsement': 'endorsement',
    'Nonce': 'nonce',
    'Operation': 'operation',
    'Origination': 'origination',
    'Proposal': 'proposal',
    'Reveal': 'reveal',
    'Transaction': 'transaction',
}
start_block_number = 0
end_block_number = 870000
batch_size = 1000

for data_type in table_names.keys():
    for batch in range(start_block_number, end_block_number, batch_size):
        final_file_name = f"{settings.BATCH_AVRO_LOCAL_STORAGE}/{data_type}/{data_type.lower()}_{batch}_{batch+batch_size-1}.avro"
        data_list = []
        for b in range(batch, batch + batch_size):
            file_name = f"{settings.AVRO_LOCAL_STORAGE}/{data_type}/{b}.avro"
            data_list += read_from_avro(file_name)
        c = write_to_avro(data_list, data_type)
        bytesio_to_file(c, final_file_name)
        logger.info(f"Successfully wrote file {final_file_name}")
コード例 #4
0
ファイル: test.py プロジェクト: ankitchiplunkar/tezos-etl
def test_transform_operation_types(block_number):
    response = json.loads(get_response_from_mocks(block_number))
    blocks = transform_block(response)
    operation_types = transform_operation_types(blocks, response)
    for key, value in operation_types.items():
        c = write_to_avro(value, key)
コード例 #5
0
ファイル: test.py プロジェクト: ankitchiplunkar/tezos-etl
def test_transform_operation(block_number):
    response = json.loads(get_response_from_mocks(block_number))
    blocks = transform_block(response)
    operations = transform_operations(blocks, response)
    c = write_to_avro(operations, "Operation")
コード例 #6
0
ファイル: test.py プロジェクト: ankitchiplunkar/tezos-etl
def test_transform_balance_update(block_number):
    response = json.loads(get_response_from_mocks(block_number))
    blocks = transform_block(response)
    balance_updates = transform_balance_updates(blocks, response)
    c = write_to_avro(balance_updates, "BalanceUpdate")
コード例 #7
0
ファイル: test.py プロジェクト: ankitchiplunkar/tezos-etl
def test_transform_block(block_number):
    response = json.loads(get_response_from_mocks(block_number))
    blocks = transform_block(response)
    c = write_to_avro(blocks, "Block")